{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# ResnetTrick_s256bs16_e200\n",
    "\n",
    "> size 256 bs 16 200 epochs runs."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# setup and imports"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# pip install git+https://github.com/ayasyrev/model_constructor"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# pip install git+https://github.com/kornia/kornia"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "from kornia.contrib import MaxBlurPool2d"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "from fastai.basic_train import *\n",
    "from fastai.vision import *\n",
    "from fastai.script import *\n",
    "from model_constructor.net import *\n",
    "from model_constructor.layers import SimpleSelfAttention, ConvLayer"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "\n",
    "import math\n",
    "import torch\n",
    "from torch.optim.optimizer import Optimizer, required\n",
    "import itertools as it"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# utils"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "class Mish(nn.Module):\n",
    "    def __init__(self):\n",
    "        super().__init__()\n",
    "        print(\"Mish activation loaded...\")\n",
    "\n",
    "    def forward(self, x):  \n",
    "        #save 1 second per epoch with no x= x*() and then return x...just inline it.\n",
    "        return x *( torch.tanh(F.softplus(x))) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#Ranger deep learning optimizer - RAdam + Lookahead combined.\n",
    "  #https://github.com/lessw2020/Ranger-Deep-Learning-Optimizer\n",
    "\n",
    "  #Ranger has now been used to capture 12 records on the FastAI leaderboard.\n",
    "\n",
    "  #This version = 9.3.19  \n",
    "\n",
    "  #Credits:\n",
    "  #RAdam -->  https://github.com/LiyuanLucasLiu/RAdam\n",
    "  #Lookahead --> rewritten by lessw2020, but big thanks to Github @LonePatient and @RWightman for ideas from their code.\n",
    "  #Lookahead paper --> MZhang,G Hinton  https://arxiv.org/abs/1907.08610\n",
    "\n",
    "  #summary of changes: \n",
    "  #full code integration with all updates at param level instead of group, moves slow weights into state dict (from generic weights), \n",
    "  #supports group learning rates (thanks @SHolderbach), fixes sporadic load from saved model issues.\n",
    "  #changes 8/31/19 - fix references to *self*.N_sma_threshold; \n",
    "                  #changed eps to 1e-5 as better default than 1e-8.\n",
    "\n",
    "class Ranger(Optimizer):\n",
    "\n",
    "    def __init__(self, params, lr=1e-3, alpha=0.5, k=6, N_sma_threshhold=5, betas=(.95,0.999), eps=1e-5, weight_decay=0):\n",
    "        #parameter checks\n",
    "        if not 0.0 <= alpha <= 1.0:\n",
    "            raise ValueError(f'Invalid slow update rate: {alpha}')\n",
    "        if not 1 <= k:\n",
    "            raise ValueError(f'Invalid lookahead steps: {k}')\n",
    "        if not lr > 0:\n",
    "            raise ValueError(f'Invalid Learning Rate: {lr}')\n",
    "        if not eps > 0:\n",
    "            raise ValueError(f'Invalid eps: {eps}')\n",
    "\n",
    "        #parameter comments:\n",
    "        # beta1 (momentum) of .95 seems to work better than .90...\n",
    "        #N_sma_threshold of 5 seems better in testing than 4.\n",
    "        #In both cases, worth testing on your dataset (.90 vs .95, 4 vs 5) to make sure which works best for you.\n",
    "\n",
    "        #prep defaults and init torch.optim base\n",
    "        defaults = dict(lr=lr, alpha=alpha, k=k, step_counter=0, betas=betas, N_sma_threshhold=N_sma_threshhold, eps=eps, weight_decay=weight_decay)\n",
    "        super().__init__(params,defaults)\n",
    "\n",
    "        #adjustable threshold\n",
    "        self.N_sma_threshhold = N_sma_threshhold\n",
    "\n",
    "        #now we can get to work...\n",
    "        #removed as we now use step from RAdam...no need for duplicate step counting\n",
    "        #for group in self.param_groups:\n",
    "        #    group[\"step_counter\"] = 0\n",
    "            #print(\"group step counter init\")\n",
    "\n",
    "        #look ahead params\n",
    "        self.alpha = alpha\n",
    "        self.k = k \n",
    "\n",
    "        #radam buffer for state\n",
    "        self.radam_buffer = [[None,None,None] for ind in range(10)]\n",
    "\n",
    "        #self.first_run_check=0\n",
    "\n",
    "        #lookahead weights\n",
    "        #9/2/19 - lookahead param tensors have been moved to state storage.  \n",
    "        #This should resolve issues with load/save where weights were left in GPU memory from first load, slowing down future runs.\n",
    "\n",
    "        #self.slow_weights = [[p.clone().detach() for p in group['params']]\n",
    "        #                     for group in self.param_groups]\n",
    "\n",
    "        #don't use grad for lookahead weights\n",
    "        #for w in it.chain(*self.slow_weights):\n",
    "        #    w.requires_grad = False\n",
    "\n",
    "    def __setstate__(self, state):\n",
    "        print(\"set state called\")\n",
    "        super(Ranger, self).__setstate__(state)\n",
    "\n",
    "\n",
    "    def step(self, closure=None):\n",
    "        loss = None\n",
    "        #note - below is commented out b/c I have other work that passes back the loss as a float, and thus not a callable closure.  \n",
    "        #Uncomment if you need to use the actual closure...\n",
    "\n",
    "        #if closure is not None:\n",
    "            #loss = closure()\n",
    "\n",
    "        #Evaluate averages and grad, update param tensors\n",
    "        for group in self.param_groups:\n",
    "\n",
    "            for p in group['params']:\n",
    "                if p.grad is None:\n",
    "                    continue\n",
    "                grad = p.grad.data.float()\n",
    "                if grad.is_sparse:\n",
    "                    raise RuntimeError('Ranger optimizer does not support sparse gradients')\n",
    "\n",
    "                p_data_fp32 = p.data.float()\n",
    "\n",
    "                state = self.state[p]  #get state dict for this param\n",
    "\n",
    "                if len(state) == 0:   #if first time to run...init dictionary with our desired entries\n",
    "                    #if self.first_run_check==0:\n",
    "                        #self.first_run_check=1\n",
    "                        #print(\"Initializing slow buffer...should not see this at load from saved model!\")\n",
    "                    state['step'] = 0\n",
    "                    state['exp_avg'] = torch.zeros_like(p_data_fp32)\n",
    "                    state['exp_avg_sq'] = torch.zeros_like(p_data_fp32)\n",
    "\n",
    "                    #look ahead weight storage now in state dict \n",
    "                    state['slow_buffer'] = torch.empty_like(p.data)\n",
    "                    state['slow_buffer'].copy_(p.data)\n",
    "\n",
    "                else:\n",
    "                    state['exp_avg'] = state['exp_avg'].type_as(p_data_fp32)\n",
    "                    state['exp_avg_sq'] = state['exp_avg_sq'].type_as(p_data_fp32)\n",
    "\n",
    "                #begin computations \n",
    "                exp_avg, exp_avg_sq = state['exp_avg'], state['exp_avg_sq']\n",
    "                beta1, beta2 = group['betas']\n",
    "\n",
    "                #compute variance mov avg\n",
    "                exp_avg_sq.mul_(beta2).addcmul_(1 - beta2, grad, grad)\n",
    "                #compute mean moving avg\n",
    "                exp_avg.mul_(beta1).add_(1 - beta1, grad)\n",
    "\n",
    "                state['step'] += 1\n",
    "\n",
    "\n",
    "                buffered = self.radam_buffer[int(state['step'] % 10)]\n",
    "                if state['step'] == buffered[0]:\n",
    "                    N_sma, step_size = buffered[1], buffered[2]\n",
    "                else:\n",
    "                    buffered[0] = state['step']\n",
    "                    beta2_t = beta2 ** state['step']\n",
    "                    N_sma_max = 2 / (1 - beta2) - 1\n",
    "                    N_sma = N_sma_max - 2 * state['step'] * beta2_t / (1 - beta2_t)\n",
    "                    buffered[1] = N_sma\n",
    "                    if N_sma > self.N_sma_threshhold:\n",
    "                        step_size = math.sqrt((1 - beta2_t) * (N_sma - 4) / (N_sma_max - 4) * (N_sma - 2) / N_sma * N_sma_max / (N_sma_max - 2)) / (1 - beta1 ** state['step'])\n",
    "                    else:\n",
    "                        step_size = 1.0 / (1 - beta1 ** state['step'])\n",
    "                    buffered[2] = step_size\n",
    "\n",
    "                if group['weight_decay'] != 0:\n",
    "                    p_data_fp32.add_(-group['weight_decay'] * group['lr'], p_data_fp32)\n",
    "\n",
    "                if N_sma > self.N_sma_threshhold:\n",
    "                    denom = exp_avg_sq.sqrt().add_(group['eps'])\n",
    "                    p_data_fp32.addcdiv_(-step_size * group['lr'], exp_avg, denom)\n",
    "                else:\n",
    "                    p_data_fp32.add_(-step_size * group['lr'], exp_avg)\n",
    "\n",
    "                p.data.copy_(p_data_fp32)\n",
    "\n",
    "                #integrated look ahead...\n",
    "                #we do it at the param level instead of group level\n",
    "                if state['step'] % group['k'] == 0:\n",
    "                    slow_p = state['slow_buffer'] #get access to slow param tensor\n",
    "                    slow_p.add_(self.alpha, p.data - slow_p)  #(fast weights - slow weights) * alpha\n",
    "                    p.data.copy_(slow_p)  #copy interpolated weights to RAdam param tensor\n",
    "\n",
    "        return loss"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_data(size=128, woof=1, bs=64, workers=None, **kwargs):\n",
    "    if woof:\n",
    "        path = URLs.IMAGEWOOF    # if woof \n",
    "    else:\n",
    "        path = URLs.IMAGENETTE\n",
    "    path = untar_data(path)\n",
    "    print('data path  ', path)\n",
    "    n_gpus = num_distrib() or 1\n",
    "    if workers is None: workers = min(8, num_cpus()//n_gpus)\n",
    "    return (ImageList.from_folder(path).split_by_folder(valid='val')\n",
    "            .label_from_folder().transform(([flip_lr(p=0.5)], []), size=size)\n",
    "            .databunch(bs=bs, num_workers=workers)\n",
    "            .presize(size, scale=(0.35,1))\n",
    "            .normalize(imagenet_stats))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_learn(\n",
    "        gpu:Param(\"GPU to run on\", str)=None,\n",
    "        woof: Param(\"Use imagewoof (otherwise imagenette)\", int)=1,\n",
    "        size: Param(\"Size (px: 128,192,224)\", int)=128,\n",
    "        alpha: Param(\"Alpha\", float)=0.99, \n",
    "        mom: Param(\"Momentum\", float)=0.95, #? 0.9\n",
    "        eps: Param(\"epsilon\", float)=1e-6,\n",
    "        bs: Param(\"Batch size\", int)=64,\n",
    "        mixup: Param(\"Mixup\", float)=0.,\n",
    "        opt: Param(\"Optimizer (adam,rms,sgd)\", str)='ranger',\n",
    "        sa: Param(\"Self-attention\", int)=0,\n",
    "        sym: Param(\"Symmetry for self-attention\", int)=0,\n",
    "        model: Param('model as partial', callable) = xresnet50\n",
    "        ):\n",
    " \n",
    "    if   opt=='adam' : opt_func = partial(optim.Adam, betas=(mom,alpha), eps=eps)\n",
    "    elif opt=='ranger'  : opt_func = partial(Ranger,  betas=(mom,alpha), eps=eps)\n",
    "    data = get_data(size, woof, bs)\n",
    "    learn = (Learner(data, model(), wd=1e-2, opt_func=opt_func,\n",
    "             metrics=[accuracy,top_k_accuracy],\n",
    "             bn_wd=False, true_wd=True,\n",
    "             loss_func = LabelSmoothingCrossEntropy(),))\n",
    "    print('Learn path', learn.path)\n",
    "    if mixup: learn = learn.mixup(alpha=mixup)\n",
    "    return learn"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# ResBlock"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "class NewResBlock(Module):\n",
    "    def __init__(self, expansion, ni, nh, stride=1, \n",
    "                 conv_layer=ConvLayer, act_fn=act_fn,\n",
    "#                  pool=nn.AvgPool2d(2, ceil_mode=True), sa=False,sym=False):\n",
    "                 pool=nn.AvgPool2d(2, ceil_mode=True), sa=False,sym=False, zero_bn=True):\n",
    "        nf,ni = nh*expansion,ni*expansion\n",
    "        self.reduce = noop if stride==1 else pool\n",
    "        layers  = [(f\"conv_0\", conv_layer(ni, nh, 3, stride=stride, act_fn=act_fn)),\n",
    "                   (f\"conv_1\", conv_layer(nh, nf, 3, zero_bn=zero_bn, act=False))\n",
    "        ] if expansion == 1 else [\n",
    "                   (f\"conv_0\",conv_layer(ni, nh, 1, act_fn=act_fn)),\n",
    "                   (f\"conv_1\",conv_layer(nh, nh, 3, stride=1, act_fn=act_fn)), #!!!\n",
    "                   (f\"conv_2\",conv_layer(nh, nf, 1, zero_bn=zero_bn, act=False))\n",
    "        ]\n",
    "        if sa: layers.append(('sa', SimpleSelfAttention(nf,ks=1,sym=sym)))\n",
    "        self.convs = nn.Sequential(OrderedDict(layers))\n",
    "        self.idconv = noop if ni==nf else conv_layer(ni, nf, 1, act=False)\n",
    "        self.merge =act_fn\n",
    "\n",
    "    def forward(self, x): \n",
    "        o = self.reduce(x)\n",
    "        return self.merge(self.convs(o) + self.idconv(o))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Parameters"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "lr = 0.004\n",
    "epochs = 200\n",
    "moms = (0.95,0.95)\n",
    "start_pct = 0.2\n",
    "size=256\n",
    "bs=16"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Model Constructor"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "model = xresnet50(c_out=10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "model.block = NewResBlock"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "pool = MaxBlurPool2d(3, True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "model.pool = pool\n",
    "model.stem_pool = pool"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Mish activation loaded...\n"
     ]
    }
   ],
   "source": [
    "# model.stem_sizes = [3,32,32,64]\n",
    "model.stem_sizes = [3,32,64,64]\n",
    "\n",
    "model.act_fn= Mish()\n",
    "model.sa = True"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## repr model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Sequential(\n",
       "  model xresnet50\n",
       "  (stem): Sequential(\n",
       "    (conv_0): ConvLayer(\n",
       "      (conv): Conv2d(3, 32, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)\n",
       "      (bn): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "      (act_fn): Mish()\n",
       "    )\n",
       "    (conv_1): ConvLayer(\n",
       "      (conv): Conv2d(32, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
       "      (bn): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "      (act_fn): Mish()\n",
       "    )\n",
       "    (conv_2): ConvLayer(\n",
       "      (conv): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
       "      (bn): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "      (act_fn): Mish()\n",
       "    )\n",
       "    (stem_pool): MaxBlurPool2d()\n",
       "  )\n",
       "  (body): Sequential(\n",
       "    (l_0): Sequential(\n",
       "      (bl_0): NewResBlock(\n",
       "        (convs): Sequential(\n",
       "          (conv_0): ConvLayer(\n",
       "            (conv): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "            (bn): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "            (act_fn): Mish()\n",
       "          )\n",
       "          (conv_1): ConvLayer(\n",
       "            (conv): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
       "            (bn): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "            (act_fn): Mish()\n",
       "          )\n",
       "          (conv_2): ConvLayer(\n",
       "            (conv): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "            (bn): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "          )\n",
       "        )\n",
       "        (idconv): ConvLayer(\n",
       "          (conv): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "          (bn): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "        )\n",
       "        (merge): Mish()\n",
       "      )\n",
       "      (bl_1): NewResBlock(\n",
       "        (convs): Sequential(\n",
       "          (conv_0): ConvLayer(\n",
       "            (conv): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "            (bn): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "            (act_fn): Mish()\n",
       "          )\n",
       "          (conv_1): ConvLayer(\n",
       "            (conv): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
       "            (bn): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "            (act_fn): Mish()\n",
       "          )\n",
       "          (conv_2): ConvLayer(\n",
       "            (conv): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "            (bn): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "          )\n",
       "        )\n",
       "        (merge): Mish()\n",
       "      )\n",
       "      (bl_2): NewResBlock(\n",
       "        (convs): Sequential(\n",
       "          (conv_0): ConvLayer(\n",
       "            (conv): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "            (bn): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "            (act_fn): Mish()\n",
       "          )\n",
       "          (conv_1): ConvLayer(\n",
       "            (conv): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
       "            (bn): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "            (act_fn): Mish()\n",
       "          )\n",
       "          (conv_2): ConvLayer(\n",
       "            (conv): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "            (bn): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "          )\n",
       "          (sa): SimpleSelfAttention(\n",
       "            (conv): Conv1d(256, 256, kernel_size=(1,), stride=(1,), bias=False)\n",
       "          )\n",
       "        )\n",
       "        (merge): Mish()\n",
       "      )\n",
       "    )\n",
       "    (l_1): Sequential(\n",
       "      (bl_0): NewResBlock(\n",
       "        (reduce): MaxBlurPool2d()\n",
       "        (convs): Sequential(\n",
       "          (conv_0): ConvLayer(\n",
       "            (conv): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "            (bn): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "            (act_fn): Mish()\n",
       "          )\n",
       "          (conv_1): ConvLayer(\n",
       "            (conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
       "            (bn): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "            (act_fn): Mish()\n",
       "          )\n",
       "          (conv_2): ConvLayer(\n",
       "            (conv): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "            (bn): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "          )\n",
       "        )\n",
       "        (idconv): ConvLayer(\n",
       "          (conv): Conv2d(256, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "          (bn): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "        )\n",
       "        (merge): Mish()\n",
       "      )\n",
       "      (bl_1): NewResBlock(\n",
       "        (convs): Sequential(\n",
       "          (conv_0): ConvLayer(\n",
       "            (conv): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "            (bn): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "            (act_fn): Mish()\n",
       "          )\n",
       "          (conv_1): ConvLayer(\n",
       "            (conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
       "            (bn): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "            (act_fn): Mish()\n",
       "          )\n",
       "          (conv_2): ConvLayer(\n",
       "            (conv): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "            (bn): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "          )\n",
       "        )\n",
       "        (merge): Mish()\n",
       "      )\n",
       "      (bl_2): NewResBlock(\n",
       "        (convs): Sequential(\n",
       "          (conv_0): ConvLayer(\n",
       "            (conv): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "            (bn): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "            (act_fn): Mish()\n",
       "          )\n",
       "          (conv_1): ConvLayer(\n",
       "            (conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
       "            (bn): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "            (act_fn): Mish()\n",
       "          )\n",
       "          (conv_2): ConvLayer(\n",
       "            (conv): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "            (bn): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "          )\n",
       "        )\n",
       "        (merge): Mish()\n",
       "      )\n",
       "      (bl_3): NewResBlock(\n",
       "        (convs): Sequential(\n",
       "          (conv_0): ConvLayer(\n",
       "            (conv): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "            (bn): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "            (act_fn): Mish()\n",
       "          )\n",
       "          (conv_1): ConvLayer(\n",
       "            (conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
       "            (bn): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "            (act_fn): Mish()\n",
       "          )\n",
       "          (conv_2): ConvLayer(\n",
       "            (conv): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "            (bn): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "          )\n",
       "        )\n",
       "        (merge): Mish()\n",
       "      )\n",
       "    )\n",
       "    (l_2): Sequential(\n",
       "      (bl_0): NewResBlock(\n",
       "        (reduce): MaxBlurPool2d()\n",
       "        (convs): Sequential(\n",
       "          (conv_0): ConvLayer(\n",
       "            (conv): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "            (bn): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "            (act_fn): Mish()\n",
       "          )\n",
       "          (conv_1): ConvLayer(\n",
       "            (conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
       "            (bn): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "            (act_fn): Mish()\n",
       "          )\n",
       "          (conv_2): ConvLayer(\n",
       "            (conv): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "            (bn): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "          )\n",
       "        )\n",
       "        (idconv): ConvLayer(\n",
       "          (conv): Conv2d(512, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "          (bn): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "        )\n",
       "        (merge): Mish()\n",
       "      )\n",
       "      (bl_1): NewResBlock(\n",
       "        (convs): Sequential(\n",
       "          (conv_0): ConvLayer(\n",
       "            (conv): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "            (bn): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "            (act_fn): Mish()\n",
       "          )\n",
       "          (conv_1): ConvLayer(\n",
       "            (conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
       "            (bn): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "            (act_fn): Mish()\n",
       "          )\n",
       "          (conv_2): ConvLayer(\n",
       "            (conv): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "            (bn): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "          )\n",
       "        )\n",
       "        (merge): Mish()\n",
       "      )\n",
       "      (bl_2): NewResBlock(\n",
       "        (convs): Sequential(\n",
       "          (conv_0): ConvLayer(\n",
       "            (conv): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "            (bn): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "            (act_fn): Mish()\n",
       "          )\n",
       "          (conv_1): ConvLayer(\n",
       "            (conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
       "            (bn): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "            (act_fn): Mish()\n",
       "          )\n",
       "          (conv_2): ConvLayer(\n",
       "            (conv): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "            (bn): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "          )\n",
       "        )\n",
       "        (merge): Mish()\n",
       "      )\n",
       "      (bl_3): NewResBlock(\n",
       "        (convs): Sequential(\n",
       "          (conv_0): ConvLayer(\n",
       "            (conv): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "            (bn): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "            (act_fn): Mish()\n",
       "          )\n",
       "          (conv_1): ConvLayer(\n",
       "            (conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
       "            (bn): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "            (act_fn): Mish()\n",
       "          )\n",
       "          (conv_2): ConvLayer(\n",
       "            (conv): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "            (bn): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "          )\n",
       "        )\n",
       "        (merge): Mish()\n",
       "      )\n",
       "      (bl_4): NewResBlock(\n",
       "        (convs): Sequential(\n",
       "          (conv_0): ConvLayer(\n",
       "            (conv): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "            (bn): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "            (act_fn): Mish()\n",
       "          )\n",
       "          (conv_1): ConvLayer(\n",
       "            (conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
       "            (bn): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "            (act_fn): Mish()\n",
       "          )\n",
       "          (conv_2): ConvLayer(\n",
       "            (conv): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "            (bn): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "          )\n",
       "        )\n",
       "        (merge): Mish()\n",
       "      )\n",
       "      (bl_5): NewResBlock(\n",
       "        (convs): Sequential(\n",
       "          (conv_0): ConvLayer(\n",
       "            (conv): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "            (bn): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "            (act_fn): Mish()\n",
       "          )\n",
       "          (conv_1): ConvLayer(\n",
       "            (conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
       "            (bn): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "            (act_fn): Mish()\n",
       "          )\n",
       "          (conv_2): ConvLayer(\n",
       "            (conv): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "            (bn): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "          )\n",
       "        )\n",
       "        (merge): Mish()\n",
       "      )\n",
       "    )\n",
       "    (l_3): Sequential(\n",
       "      (bl_0): NewResBlock(\n",
       "        (reduce): MaxBlurPool2d()\n",
       "        (convs): Sequential(\n",
       "          (conv_0): ConvLayer(\n",
       "            (conv): Conv2d(1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "            (bn): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "            (act_fn): Mish()\n",
       "          )\n",
       "          (conv_1): ConvLayer(\n",
       "            (conv): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
       "            (bn): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "            (act_fn): Mish()\n",
       "          )\n",
       "          (conv_2): ConvLayer(\n",
       "            (conv): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "            (bn): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "          )\n",
       "        )\n",
       "        (idconv): ConvLayer(\n",
       "          (conv): Conv2d(1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "          (bn): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "        )\n",
       "        (merge): Mish()\n",
       "      )\n",
       "      (bl_1): NewResBlock(\n",
       "        (convs): Sequential(\n",
       "          (conv_0): ConvLayer(\n",
       "            (conv): Conv2d(2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "            (bn): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "            (act_fn): Mish()\n",
       "          )\n",
       "          (conv_1): ConvLayer(\n",
       "            (conv): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
       "            (bn): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "            (act_fn): Mish()\n",
       "          )\n",
       "          (conv_2): ConvLayer(\n",
       "            (conv): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "            (bn): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "          )\n",
       "        )\n",
       "        (merge): Mish()\n",
       "      )\n",
       "      (bl_2): NewResBlock(\n",
       "        (convs): Sequential(\n",
       "          (conv_0): ConvLayer(\n",
       "            (conv): Conv2d(2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "            (bn): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "            (act_fn): Mish()\n",
       "          )\n",
       "          (conv_1): ConvLayer(\n",
       "            (conv): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
       "            (bn): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "            (act_fn): Mish()\n",
       "          )\n",
       "          (conv_2): ConvLayer(\n",
       "            (conv): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "            (bn): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "          )\n",
       "        )\n",
       "        (merge): Mish()\n",
       "      )\n",
       "    )\n",
       "  )\n",
       "  (head): Sequential(\n",
       "    (pool): AdaptiveAvgPool2d(output_size=1)\n",
       "    (flat): Flatten()\n",
       "    (fc): Linear(in_features=2048, out_features=10, bias=True)\n",
       "  )\n",
       ")"
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Sequential(\n",
       "  (conv_0): ConvLayer(\n",
       "    (conv): Conv2d(3, 32, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)\n",
       "    (bn): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "    (act_fn): Mish()\n",
       "  )\n",
       "  (conv_1): ConvLayer(\n",
       "    (conv): Conv2d(32, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
       "    (bn): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "    (act_fn): Mish()\n",
       "  )\n",
       "  (conv_2): ConvLayer(\n",
       "    (conv): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
       "    (bn): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "    (act_fn): Mish()\n",
       "  )\n",
       "  (stem_pool): MaxBlurPool2d()\n",
       ")"
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model.stem"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Sequential(\n",
       "  (l_0): Sequential(\n",
       "    (bl_0): NewResBlock(\n",
       "      (convs): Sequential(\n",
       "        (conv_0): ConvLayer(\n",
       "          (conv): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "          (bn): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "          (act_fn): Mish()\n",
       "        )\n",
       "        (conv_1): ConvLayer(\n",
       "          (conv): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
       "          (bn): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "          (act_fn): Mish()\n",
       "        )\n",
       "        (conv_2): ConvLayer(\n",
       "          (conv): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "          (bn): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "        )\n",
       "      )\n",
       "      (idconv): ConvLayer(\n",
       "        (conv): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "        (bn): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "      )\n",
       "      (merge): Mish()\n",
       "    )\n",
       "    (bl_1): NewResBlock(\n",
       "      (convs): Sequential(\n",
       "        (conv_0): ConvLayer(\n",
       "          (conv): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "          (bn): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "          (act_fn): Mish()\n",
       "        )\n",
       "        (conv_1): ConvLayer(\n",
       "          (conv): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
       "          (bn): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "          (act_fn): Mish()\n",
       "        )\n",
       "        (conv_2): ConvLayer(\n",
       "          (conv): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "          (bn): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "        )\n",
       "      )\n",
       "      (merge): Mish()\n",
       "    )\n",
       "    (bl_2): NewResBlock(\n",
       "      (convs): Sequential(\n",
       "        (conv_0): ConvLayer(\n",
       "          (conv): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "          (bn): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "          (act_fn): Mish()\n",
       "        )\n",
       "        (conv_1): ConvLayer(\n",
       "          (conv): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
       "          (bn): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "          (act_fn): Mish()\n",
       "        )\n",
       "        (conv_2): ConvLayer(\n",
       "          (conv): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "          (bn): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "        )\n",
       "        (sa): SimpleSelfAttention(\n",
       "          (conv): Conv1d(256, 256, kernel_size=(1,), stride=(1,), bias=False)\n",
       "        )\n",
       "      )\n",
       "      (merge): Mish()\n",
       "    )\n",
       "  )\n",
       "  (l_1): Sequential(\n",
       "    (bl_0): NewResBlock(\n",
       "      (reduce): MaxBlurPool2d()\n",
       "      (convs): Sequential(\n",
       "        (conv_0): ConvLayer(\n",
       "          (conv): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "          (bn): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "          (act_fn): Mish()\n",
       "        )\n",
       "        (conv_1): ConvLayer(\n",
       "          (conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
       "          (bn): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "          (act_fn): Mish()\n",
       "        )\n",
       "        (conv_2): ConvLayer(\n",
       "          (conv): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "          (bn): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "        )\n",
       "      )\n",
       "      (idconv): ConvLayer(\n",
       "        (conv): Conv2d(256, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "        (bn): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "      )\n",
       "      (merge): Mish()\n",
       "    )\n",
       "    (bl_1): NewResBlock(\n",
       "      (convs): Sequential(\n",
       "        (conv_0): ConvLayer(\n",
       "          (conv): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "          (bn): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "          (act_fn): Mish()\n",
       "        )\n",
       "        (conv_1): ConvLayer(\n",
       "          (conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
       "          (bn): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "          (act_fn): Mish()\n",
       "        )\n",
       "        (conv_2): ConvLayer(\n",
       "          (conv): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "          (bn): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "        )\n",
       "      )\n",
       "      (merge): Mish()\n",
       "    )\n",
       "    (bl_2): NewResBlock(\n",
       "      (convs): Sequential(\n",
       "        (conv_0): ConvLayer(\n",
       "          (conv): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "          (bn): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "          (act_fn): Mish()\n",
       "        )\n",
       "        (conv_1): ConvLayer(\n",
       "          (conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
       "          (bn): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "          (act_fn): Mish()\n",
       "        )\n",
       "        (conv_2): ConvLayer(\n",
       "          (conv): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "          (bn): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "        )\n",
       "      )\n",
       "      (merge): Mish()\n",
       "    )\n",
       "    (bl_3): NewResBlock(\n",
       "      (convs): Sequential(\n",
       "        (conv_0): ConvLayer(\n",
       "          (conv): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "          (bn): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "          (act_fn): Mish()\n",
       "        )\n",
       "        (conv_1): ConvLayer(\n",
       "          (conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
       "          (bn): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "          (act_fn): Mish()\n",
       "        )\n",
       "        (conv_2): ConvLayer(\n",
       "          (conv): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "          (bn): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "        )\n",
       "      )\n",
       "      (merge): Mish()\n",
       "    )\n",
       "  )\n",
       "  (l_2): Sequential(\n",
       "    (bl_0): NewResBlock(\n",
       "      (reduce): MaxBlurPool2d()\n",
       "      (convs): Sequential(\n",
       "        (conv_0): ConvLayer(\n",
       "          (conv): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "          (bn): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "          (act_fn): Mish()\n",
       "        )\n",
       "        (conv_1): ConvLayer(\n",
       "          (conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
       "          (bn): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "          (act_fn): Mish()\n",
       "        )\n",
       "        (conv_2): ConvLayer(\n",
       "          (conv): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "          (bn): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "        )\n",
       "      )\n",
       "      (idconv): ConvLayer(\n",
       "        (conv): Conv2d(512, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "        (bn): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "      )\n",
       "      (merge): Mish()\n",
       "    )\n",
       "    (bl_1): NewResBlock(\n",
       "      (convs): Sequential(\n",
       "        (conv_0): ConvLayer(\n",
       "          (conv): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "          (bn): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "          (act_fn): Mish()\n",
       "        )\n",
       "        (conv_1): ConvLayer(\n",
       "          (conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
       "          (bn): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "          (act_fn): Mish()\n",
       "        )\n",
       "        (conv_2): ConvLayer(\n",
       "          (conv): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "          (bn): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "        )\n",
       "      )\n",
       "      (merge): Mish()\n",
       "    )\n",
       "    (bl_2): NewResBlock(\n",
       "      (convs): Sequential(\n",
       "        (conv_0): ConvLayer(\n",
       "          (conv): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "          (bn): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "          (act_fn): Mish()\n",
       "        )\n",
       "        (conv_1): ConvLayer(\n",
       "          (conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
       "          (bn): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "          (act_fn): Mish()\n",
       "        )\n",
       "        (conv_2): ConvLayer(\n",
       "          (conv): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "          (bn): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "        )\n",
       "      )\n",
       "      (merge): Mish()\n",
       "    )\n",
       "    (bl_3): NewResBlock(\n",
       "      (convs): Sequential(\n",
       "        (conv_0): ConvLayer(\n",
       "          (conv): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "          (bn): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "          (act_fn): Mish()\n",
       "        )\n",
       "        (conv_1): ConvLayer(\n",
       "          (conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
       "          (bn): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "          (act_fn): Mish()\n",
       "        )\n",
       "        (conv_2): ConvLayer(\n",
       "          (conv): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "          (bn): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "        )\n",
       "      )\n",
       "      (merge): Mish()\n",
       "    )\n",
       "    (bl_4): NewResBlock(\n",
       "      (convs): Sequential(\n",
       "        (conv_0): ConvLayer(\n",
       "          (conv): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "          (bn): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "          (act_fn): Mish()\n",
       "        )\n",
       "        (conv_1): ConvLayer(\n",
       "          (conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
       "          (bn): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "          (act_fn): Mish()\n",
       "        )\n",
       "        (conv_2): ConvLayer(\n",
       "          (conv): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "          (bn): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "        )\n",
       "      )\n",
       "      (merge): Mish()\n",
       "    )\n",
       "    (bl_5): NewResBlock(\n",
       "      (convs): Sequential(\n",
       "        (conv_0): ConvLayer(\n",
       "          (conv): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "          (bn): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "          (act_fn): Mish()\n",
       "        )\n",
       "        (conv_1): ConvLayer(\n",
       "          (conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
       "          (bn): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "          (act_fn): Mish()\n",
       "        )\n",
       "        (conv_2): ConvLayer(\n",
       "          (conv): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "          (bn): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "        )\n",
       "      )\n",
       "      (merge): Mish()\n",
       "    )\n",
       "  )\n",
       "  (l_3): Sequential(\n",
       "    (bl_0): NewResBlock(\n",
       "      (reduce): MaxBlurPool2d()\n",
       "      (convs): Sequential(\n",
       "        (conv_0): ConvLayer(\n",
       "          (conv): Conv2d(1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "          (bn): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "          (act_fn): Mish()\n",
       "        )\n",
       "        (conv_1): ConvLayer(\n",
       "          (conv): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
       "          (bn): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "          (act_fn): Mish()\n",
       "        )\n",
       "        (conv_2): ConvLayer(\n",
       "          (conv): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "          (bn): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "        )\n",
       "      )\n",
       "      (idconv): ConvLayer(\n",
       "        (conv): Conv2d(1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "        (bn): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "      )\n",
       "      (merge): Mish()\n",
       "    )\n",
       "    (bl_1): NewResBlock(\n",
       "      (convs): Sequential(\n",
       "        (conv_0): ConvLayer(\n",
       "          (conv): Conv2d(2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "          (bn): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "          (act_fn): Mish()\n",
       "        )\n",
       "        (conv_1): ConvLayer(\n",
       "          (conv): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
       "          (bn): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "          (act_fn): Mish()\n",
       "        )\n",
       "        (conv_2): ConvLayer(\n",
       "          (conv): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "          (bn): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "        )\n",
       "      )\n",
       "      (merge): Mish()\n",
       "    )\n",
       "    (bl_2): NewResBlock(\n",
       "      (convs): Sequential(\n",
       "        (conv_0): ConvLayer(\n",
       "          (conv): Conv2d(2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "          (bn): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "          (act_fn): Mish()\n",
       "        )\n",
       "        (conv_1): ConvLayer(\n",
       "          (conv): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
       "          (bn): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "          (act_fn): Mish()\n",
       "        )\n",
       "        (conv_2): ConvLayer(\n",
       "          (conv): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
       "          (bn): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "        )\n",
       "      )\n",
       "      (merge): Mish()\n",
       "    )\n",
       "  )\n",
       ")"
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model.body"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Sequential(\n",
       "  (pool): AdaptiveAvgPool2d(output_size=1)\n",
       "  (flat): Flatten()\n",
       "  (fc): Linear(in_features=2048, out_features=10, bias=True)\n",
       ")"
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model.head"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Lr find"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "learn = get_learn(model=model,size=size,bs=bs)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "learn.lr_find()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "learn.recorder.plot()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# epochs 200"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "epochs = 200\n",
    "mixup = 0.2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.2"
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "start_pct"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "data path   /notebooks/data/imagewoof2\n",
      "Learn path /notebooks/data/imagewoof2\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: left;\">\n",
       "      <th>epoch</th>\n",
       "      <th>train_loss</th>\n",
       "      <th>valid_loss</th>\n",
       "      <th>accuracy</th>\n",
       "      <th>top_k_accuracy</th>\n",
       "      <th>time</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>2.017882</td>\n",
       "      <td>1.928790</td>\n",
       "      <td>0.363960</td>\n",
       "      <td>0.843981</td>\n",
       "      <td>03:02</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>1.826002</td>\n",
       "      <td>1.618260</td>\n",
       "      <td>0.494782</td>\n",
       "      <td>0.912700</td>\n",
       "      <td>03:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2</td>\n",
       "      <td>1.702114</td>\n",
       "      <td>1.434746</td>\n",
       "      <td>0.602952</td>\n",
       "      <td>0.938661</td>\n",
       "      <td>03:08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>3</td>\n",
       "      <td>1.570877</td>\n",
       "      <td>1.321628</td>\n",
       "      <td>0.663019</td>\n",
       "      <td>0.950624</td>\n",
       "      <td>03:08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>4</td>\n",
       "      <td>1.515711</td>\n",
       "      <td>1.226635</td>\n",
       "      <td>0.703996</td>\n",
       "      <td>0.963095</td>\n",
       "      <td>03:09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>5</td>\n",
       "      <td>1.459399</td>\n",
       "      <td>1.173804</td>\n",
       "      <td>0.736065</td>\n",
       "      <td>0.959277</td>\n",
       "      <td>03:09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>6</td>\n",
       "      <td>1.393431</td>\n",
       "      <td>1.125825</td>\n",
       "      <td>0.750318</td>\n",
       "      <td>0.966913</td>\n",
       "      <td>03:09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>7</td>\n",
       "      <td>1.410293</td>\n",
       "      <td>1.130952</td>\n",
       "      <td>0.752863</td>\n",
       "      <td>0.969458</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>8</td>\n",
       "      <td>1.337527</td>\n",
       "      <td>1.025339</td>\n",
       "      <td>0.794859</td>\n",
       "      <td>0.974803</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>9</td>\n",
       "      <td>1.314966</td>\n",
       "      <td>1.006209</td>\n",
       "      <td>0.804021</td>\n",
       "      <td>0.976075</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>10</td>\n",
       "      <td>1.338629</td>\n",
       "      <td>1.009231</td>\n",
       "      <td>0.801985</td>\n",
       "      <td>0.975312</td>\n",
       "      <td>03:09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>11</td>\n",
       "      <td>1.317217</td>\n",
       "      <td>1.004570</td>\n",
       "      <td>0.802240</td>\n",
       "      <td>0.973276</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>12</td>\n",
       "      <td>1.231065</td>\n",
       "      <td>0.962072</td>\n",
       "      <td>0.822601</td>\n",
       "      <td>0.977857</td>\n",
       "      <td>03:09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>13</td>\n",
       "      <td>1.233818</td>\n",
       "      <td>0.989201</td>\n",
       "      <td>0.805803</td>\n",
       "      <td>0.978112</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>14</td>\n",
       "      <td>1.220943</td>\n",
       "      <td>0.928116</td>\n",
       "      <td>0.837363</td>\n",
       "      <td>0.982947</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>15</td>\n",
       "      <td>1.174686</td>\n",
       "      <td>0.932096</td>\n",
       "      <td>0.833545</td>\n",
       "      <td>0.981929</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>16</td>\n",
       "      <td>1.168160</td>\n",
       "      <td>0.945957</td>\n",
       "      <td>0.831509</td>\n",
       "      <td>0.980148</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>17</td>\n",
       "      <td>1.168986</td>\n",
       "      <td>0.921922</td>\n",
       "      <td>0.840417</td>\n",
       "      <td>0.980148</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>18</td>\n",
       "      <td>1.198004</td>\n",
       "      <td>0.919118</td>\n",
       "      <td>0.841945</td>\n",
       "      <td>0.982693</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>19</td>\n",
       "      <td>1.162564</td>\n",
       "      <td>0.946383</td>\n",
       "      <td>0.827437</td>\n",
       "      <td>0.981166</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>20</td>\n",
       "      <td>1.131765</td>\n",
       "      <td>0.902336</td>\n",
       "      <td>0.852125</td>\n",
       "      <td>0.981166</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>21</td>\n",
       "      <td>1.115148</td>\n",
       "      <td>0.907587</td>\n",
       "      <td>0.838127</td>\n",
       "      <td>0.982184</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>22</td>\n",
       "      <td>1.103041</td>\n",
       "      <td>0.870455</td>\n",
       "      <td>0.863069</td>\n",
       "      <td>0.981166</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>23</td>\n",
       "      <td>1.089935</td>\n",
       "      <td>0.877636</td>\n",
       "      <td>0.861033</td>\n",
       "      <td>0.986002</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>24</td>\n",
       "      <td>1.079238</td>\n",
       "      <td>0.885492</td>\n",
       "      <td>0.853143</td>\n",
       "      <td>0.982947</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>25</td>\n",
       "      <td>1.079450</td>\n",
       "      <td>0.880872</td>\n",
       "      <td>0.861797</td>\n",
       "      <td>0.983965</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>26</td>\n",
       "      <td>1.071678</td>\n",
       "      <td>0.886478</td>\n",
       "      <td>0.855179</td>\n",
       "      <td>0.983965</td>\n",
       "      <td>03:08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>27</td>\n",
       "      <td>1.079258</td>\n",
       "      <td>0.878898</td>\n",
       "      <td>0.863833</td>\n",
       "      <td>0.980911</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>28</td>\n",
       "      <td>1.025423</td>\n",
       "      <td>0.860068</td>\n",
       "      <td>0.867905</td>\n",
       "      <td>0.985492</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>29</td>\n",
       "      <td>1.058805</td>\n",
       "      <td>0.871053</td>\n",
       "      <td>0.861033</td>\n",
       "      <td>0.985238</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>30</td>\n",
       "      <td>1.040773</td>\n",
       "      <td>0.862607</td>\n",
       "      <td>0.863069</td>\n",
       "      <td>0.986256</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>31</td>\n",
       "      <td>1.024859</td>\n",
       "      <td>0.880172</td>\n",
       "      <td>0.858743</td>\n",
       "      <td>0.979384</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>32</td>\n",
       "      <td>1.014439</td>\n",
       "      <td>0.865724</td>\n",
       "      <td>0.864088</td>\n",
       "      <td>0.980911</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>33</td>\n",
       "      <td>1.007414</td>\n",
       "      <td>0.850727</td>\n",
       "      <td>0.868669</td>\n",
       "      <td>0.984474</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>34</td>\n",
       "      <td>1.011973</td>\n",
       "      <td>0.863815</td>\n",
       "      <td>0.862560</td>\n",
       "      <td>0.982438</td>\n",
       "      <td>03:09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>35</td>\n",
       "      <td>0.981910</td>\n",
       "      <td>0.847667</td>\n",
       "      <td>0.868923</td>\n",
       "      <td>0.983711</td>\n",
       "      <td>03:09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>36</td>\n",
       "      <td>1.004076</td>\n",
       "      <td>0.851158</td>\n",
       "      <td>0.874014</td>\n",
       "      <td>0.984474</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>37</td>\n",
       "      <td>0.962162</td>\n",
       "      <td>0.847952</td>\n",
       "      <td>0.867142</td>\n",
       "      <td>0.981929</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>38</td>\n",
       "      <td>0.990039</td>\n",
       "      <td>0.846401</td>\n",
       "      <td>0.871214</td>\n",
       "      <td>0.986511</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>39</td>\n",
       "      <td>0.983525</td>\n",
       "      <td>0.850476</td>\n",
       "      <td>0.864597</td>\n",
       "      <td>0.986002</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>40</td>\n",
       "      <td>0.975215</td>\n",
       "      <td>0.850641</td>\n",
       "      <td>0.875286</td>\n",
       "      <td>0.984220</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>41</td>\n",
       "      <td>0.966435</td>\n",
       "      <td>0.843243</td>\n",
       "      <td>0.874014</td>\n",
       "      <td>0.983965</td>\n",
       "      <td>03:09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>42</td>\n",
       "      <td>0.954323</td>\n",
       "      <td>0.872074</td>\n",
       "      <td>0.864597</td>\n",
       "      <td>0.980657</td>\n",
       "      <td>03:09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>43</td>\n",
       "      <td>0.955992</td>\n",
       "      <td>0.851301</td>\n",
       "      <td>0.870196</td>\n",
       "      <td>0.981420</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>44</td>\n",
       "      <td>0.928085</td>\n",
       "      <td>0.844817</td>\n",
       "      <td>0.868669</td>\n",
       "      <td>0.983202</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>45</td>\n",
       "      <td>0.967327</td>\n",
       "      <td>0.872702</td>\n",
       "      <td>0.856707</td>\n",
       "      <td>0.979130</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>46</td>\n",
       "      <td>0.934790</td>\n",
       "      <td>0.846185</td>\n",
       "      <td>0.872232</td>\n",
       "      <td>0.982438</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>47</td>\n",
       "      <td>0.932857</td>\n",
       "      <td>0.855671</td>\n",
       "      <td>0.870196</td>\n",
       "      <td>0.981675</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>48</td>\n",
       "      <td>0.931752</td>\n",
       "      <td>0.836362</td>\n",
       "      <td>0.875032</td>\n",
       "      <td>0.984729</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>49</td>\n",
       "      <td>0.931166</td>\n",
       "      <td>0.847043</td>\n",
       "      <td>0.874268</td>\n",
       "      <td>0.981929</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>50</td>\n",
       "      <td>0.932009</td>\n",
       "      <td>0.851658</td>\n",
       "      <td>0.869432</td>\n",
       "      <td>0.980148</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>51</td>\n",
       "      <td>0.931857</td>\n",
       "      <td>0.845015</td>\n",
       "      <td>0.872487</td>\n",
       "      <td>0.982438</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>52</td>\n",
       "      <td>0.907790</td>\n",
       "      <td>0.828268</td>\n",
       "      <td>0.883431</td>\n",
       "      <td>0.980911</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>53</td>\n",
       "      <td>0.924743</td>\n",
       "      <td>0.838763</td>\n",
       "      <td>0.878595</td>\n",
       "      <td>0.983456</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>54</td>\n",
       "      <td>0.916533</td>\n",
       "      <td>0.840108</td>\n",
       "      <td>0.876304</td>\n",
       "      <td>0.980657</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>55</td>\n",
       "      <td>0.904808</td>\n",
       "      <td>0.831581</td>\n",
       "      <td>0.872996</td>\n",
       "      <td>0.983965</td>\n",
       "      <td>03:09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>56</td>\n",
       "      <td>0.917911</td>\n",
       "      <td>0.849226</td>\n",
       "      <td>0.872487</td>\n",
       "      <td>0.981675</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>57</td>\n",
       "      <td>0.922586</td>\n",
       "      <td>0.834846</td>\n",
       "      <td>0.872996</td>\n",
       "      <td>0.980402</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>58</td>\n",
       "      <td>0.894063</td>\n",
       "      <td>0.828096</td>\n",
       "      <td>0.877322</td>\n",
       "      <td>0.980911</td>\n",
       "      <td>03:09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>59</td>\n",
       "      <td>0.904273</td>\n",
       "      <td>0.850774</td>\n",
       "      <td>0.870196</td>\n",
       "      <td>0.982184</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>60</td>\n",
       "      <td>0.899271</td>\n",
       "      <td>0.825321</td>\n",
       "      <td>0.875032</td>\n",
       "      <td>0.981929</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>61</td>\n",
       "      <td>0.888398</td>\n",
       "      <td>0.821302</td>\n",
       "      <td>0.883176</td>\n",
       "      <td>0.981420</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>62</td>\n",
       "      <td>0.919501</td>\n",
       "      <td>0.836571</td>\n",
       "      <td>0.875541</td>\n",
       "      <td>0.979893</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>63</td>\n",
       "      <td>0.900012</td>\n",
       "      <td>0.853571</td>\n",
       "      <td>0.869941</td>\n",
       "      <td>0.977857</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>64</td>\n",
       "      <td>0.890661</td>\n",
       "      <td>0.832426</td>\n",
       "      <td>0.884958</td>\n",
       "      <td>0.982438</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>65</td>\n",
       "      <td>0.886927</td>\n",
       "      <td>0.836619</td>\n",
       "      <td>0.876050</td>\n",
       "      <td>0.980148</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>66</td>\n",
       "      <td>0.877264</td>\n",
       "      <td>0.825728</td>\n",
       "      <td>0.881649</td>\n",
       "      <td>0.978875</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>67</td>\n",
       "      <td>0.881242</td>\n",
       "      <td>0.829743</td>\n",
       "      <td>0.882413</td>\n",
       "      <td>0.978112</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>68</td>\n",
       "      <td>0.876207</td>\n",
       "      <td>0.834709</td>\n",
       "      <td>0.885213</td>\n",
       "      <td>0.980148</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>69</td>\n",
       "      <td>0.878293</td>\n",
       "      <td>0.829031</td>\n",
       "      <td>0.879104</td>\n",
       "      <td>0.977348</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>70</td>\n",
       "      <td>0.892205</td>\n",
       "      <td>0.820842</td>\n",
       "      <td>0.881649</td>\n",
       "      <td>0.979639</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>71</td>\n",
       "      <td>0.869783</td>\n",
       "      <td>0.807508</td>\n",
       "      <td>0.884703</td>\n",
       "      <td>0.982438</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>72</td>\n",
       "      <td>0.889589</td>\n",
       "      <td>0.823248</td>\n",
       "      <td>0.880631</td>\n",
       "      <td>0.978875</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>73</td>\n",
       "      <td>0.894120</td>\n",
       "      <td>0.833846</td>\n",
       "      <td>0.878341</td>\n",
       "      <td>0.978112</td>\n",
       "      <td>03:09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>74</td>\n",
       "      <td>0.898830</td>\n",
       "      <td>0.831425</td>\n",
       "      <td>0.874268</td>\n",
       "      <td>0.981420</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>75</td>\n",
       "      <td>0.889224</td>\n",
       "      <td>0.832020</td>\n",
       "      <td>0.876050</td>\n",
       "      <td>0.983965</td>\n",
       "      <td>03:09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>76</td>\n",
       "      <td>0.881674</td>\n",
       "      <td>0.822760</td>\n",
       "      <td>0.877577</td>\n",
       "      <td>0.981929</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>77</td>\n",
       "      <td>0.869580</td>\n",
       "      <td>0.824970</td>\n",
       "      <td>0.876813</td>\n",
       "      <td>0.978621</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>78</td>\n",
       "      <td>0.870140</td>\n",
       "      <td>0.824147</td>\n",
       "      <td>0.876559</td>\n",
       "      <td>0.978875</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>79</td>\n",
       "      <td>0.861765</td>\n",
       "      <td>0.829665</td>\n",
       "      <td>0.880377</td>\n",
       "      <td>0.978366</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>80</td>\n",
       "      <td>0.854305</td>\n",
       "      <td>0.811377</td>\n",
       "      <td>0.886485</td>\n",
       "      <td>0.981929</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>81</td>\n",
       "      <td>0.865363</td>\n",
       "      <td>0.817782</td>\n",
       "      <td>0.884449</td>\n",
       "      <td>0.981420</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>82</td>\n",
       "      <td>0.874498</td>\n",
       "      <td>0.821370</td>\n",
       "      <td>0.882667</td>\n",
       "      <td>0.980148</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>83</td>\n",
       "      <td>0.866466</td>\n",
       "      <td>0.823284</td>\n",
       "      <td>0.880377</td>\n",
       "      <td>0.980402</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>84</td>\n",
       "      <td>0.864800</td>\n",
       "      <td>0.813221</td>\n",
       "      <td>0.880886</td>\n",
       "      <td>0.982184</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>85</td>\n",
       "      <td>0.843142</td>\n",
       "      <td>0.816351</td>\n",
       "      <td>0.885976</td>\n",
       "      <td>0.980657</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>86</td>\n",
       "      <td>0.872257</td>\n",
       "      <td>0.813769</td>\n",
       "      <td>0.887758</td>\n",
       "      <td>0.980657</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>87</td>\n",
       "      <td>0.836743</td>\n",
       "      <td>0.803693</td>\n",
       "      <td>0.885467</td>\n",
       "      <td>0.982184</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>88</td>\n",
       "      <td>0.866538</td>\n",
       "      <td>0.805372</td>\n",
       "      <td>0.881140</td>\n",
       "      <td>0.983965</td>\n",
       "      <td>03:13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>89</td>\n",
       "      <td>0.839337</td>\n",
       "      <td>0.813597</td>\n",
       "      <td>0.876304</td>\n",
       "      <td>0.982438</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>90</td>\n",
       "      <td>0.854909</td>\n",
       "      <td>0.801933</td>\n",
       "      <td>0.886231</td>\n",
       "      <td>0.980148</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>91</td>\n",
       "      <td>0.844200</td>\n",
       "      <td>0.814586</td>\n",
       "      <td>0.887249</td>\n",
       "      <td>0.983202</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>92</td>\n",
       "      <td>0.813235</td>\n",
       "      <td>0.802937</td>\n",
       "      <td>0.885213</td>\n",
       "      <td>0.981420</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>93</td>\n",
       "      <td>0.849885</td>\n",
       "      <td>0.798985</td>\n",
       "      <td>0.886485</td>\n",
       "      <td>0.980911</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>94</td>\n",
       "      <td>0.836971</td>\n",
       "      <td>0.796522</td>\n",
       "      <td>0.890048</td>\n",
       "      <td>0.984474</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>95</td>\n",
       "      <td>0.848680</td>\n",
       "      <td>0.828558</td>\n",
       "      <td>0.878086</td>\n",
       "      <td>0.980911</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>96</td>\n",
       "      <td>0.818222</td>\n",
       "      <td>0.817887</td>\n",
       "      <td>0.885722</td>\n",
       "      <td>0.981166</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>97</td>\n",
       "      <td>0.846986</td>\n",
       "      <td>0.803731</td>\n",
       "      <td>0.886485</td>\n",
       "      <td>0.983711</td>\n",
       "      <td>03:13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>98</td>\n",
       "      <td>0.835968</td>\n",
       "      <td>0.815569</td>\n",
       "      <td>0.883176</td>\n",
       "      <td>0.979893</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>99</td>\n",
       "      <td>0.824460</td>\n",
       "      <td>0.797281</td>\n",
       "      <td>0.890557</td>\n",
       "      <td>0.980911</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>100</td>\n",
       "      <td>0.814861</td>\n",
       "      <td>0.816522</td>\n",
       "      <td>0.879359</td>\n",
       "      <td>0.980402</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>101</td>\n",
       "      <td>0.856010</td>\n",
       "      <td>0.804442</td>\n",
       "      <td>0.886231</td>\n",
       "      <td>0.979130</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>102</td>\n",
       "      <td>0.817901</td>\n",
       "      <td>0.810962</td>\n",
       "      <td>0.883685</td>\n",
       "      <td>0.980657</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>103</td>\n",
       "      <td>0.822683</td>\n",
       "      <td>0.802655</td>\n",
       "      <td>0.890812</td>\n",
       "      <td>0.981166</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>104</td>\n",
       "      <td>0.833942</td>\n",
       "      <td>0.805395</td>\n",
       "      <td>0.888776</td>\n",
       "      <td>0.977857</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>105</td>\n",
       "      <td>0.834455</td>\n",
       "      <td>0.820062</td>\n",
       "      <td>0.882922</td>\n",
       "      <td>0.979893</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>106</td>\n",
       "      <td>0.821004</td>\n",
       "      <td>0.812942</td>\n",
       "      <td>0.885467</td>\n",
       "      <td>0.981166</td>\n",
       "      <td>03:09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>107</td>\n",
       "      <td>0.816757</td>\n",
       "      <td>0.795289</td>\n",
       "      <td>0.891321</td>\n",
       "      <td>0.981420</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>108</td>\n",
       "      <td>0.847399</td>\n",
       "      <td>0.786665</td>\n",
       "      <td>0.893612</td>\n",
       "      <td>0.982184</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>109</td>\n",
       "      <td>0.833193</td>\n",
       "      <td>0.827145</td>\n",
       "      <td>0.881904</td>\n",
       "      <td>0.975566</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>110</td>\n",
       "      <td>0.798254</td>\n",
       "      <td>0.801798</td>\n",
       "      <td>0.886994</td>\n",
       "      <td>0.981420</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>111</td>\n",
       "      <td>0.829146</td>\n",
       "      <td>0.801804</td>\n",
       "      <td>0.892594</td>\n",
       "      <td>0.981929</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>112</td>\n",
       "      <td>0.836485</td>\n",
       "      <td>0.806534</td>\n",
       "      <td>0.890048</td>\n",
       "      <td>0.979639</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>113</td>\n",
       "      <td>0.826423</td>\n",
       "      <td>0.811089</td>\n",
       "      <td>0.886740</td>\n",
       "      <td>0.977348</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>114</td>\n",
       "      <td>0.807342</td>\n",
       "      <td>0.805337</td>\n",
       "      <td>0.887503</td>\n",
       "      <td>0.979639</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>115</td>\n",
       "      <td>0.813961</td>\n",
       "      <td>0.801359</td>\n",
       "      <td>0.889030</td>\n",
       "      <td>0.977857</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>116</td>\n",
       "      <td>0.820178</td>\n",
       "      <td>0.804971</td>\n",
       "      <td>0.883431</td>\n",
       "      <td>0.982693</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>117</td>\n",
       "      <td>0.802291</td>\n",
       "      <td>0.802996</td>\n",
       "      <td>0.890812</td>\n",
       "      <td>0.978875</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>118</td>\n",
       "      <td>0.826388</td>\n",
       "      <td>0.805034</td>\n",
       "      <td>0.886485</td>\n",
       "      <td>0.981675</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>119</td>\n",
       "      <td>0.810359</td>\n",
       "      <td>0.803073</td>\n",
       "      <td>0.885467</td>\n",
       "      <td>0.981929</td>\n",
       "      <td>03:13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>120</td>\n",
       "      <td>0.819508</td>\n",
       "      <td>0.795454</td>\n",
       "      <td>0.891066</td>\n",
       "      <td>0.978366</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>121</td>\n",
       "      <td>0.822503</td>\n",
       "      <td>0.789962</td>\n",
       "      <td>0.891830</td>\n",
       "      <td>0.979893</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>122</td>\n",
       "      <td>0.820533</td>\n",
       "      <td>0.794929</td>\n",
       "      <td>0.887758</td>\n",
       "      <td>0.977602</td>\n",
       "      <td>03:09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>123</td>\n",
       "      <td>0.809205</td>\n",
       "      <td>0.785754</td>\n",
       "      <td>0.894630</td>\n",
       "      <td>0.979130</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>124</td>\n",
       "      <td>0.809276</td>\n",
       "      <td>0.807712</td>\n",
       "      <td>0.889030</td>\n",
       "      <td>0.975566</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>125</td>\n",
       "      <td>0.802974</td>\n",
       "      <td>0.812396</td>\n",
       "      <td>0.884194</td>\n",
       "      <td>0.981420</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>126</td>\n",
       "      <td>0.801319</td>\n",
       "      <td>0.792428</td>\n",
       "      <td>0.891066</td>\n",
       "      <td>0.978875</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>127</td>\n",
       "      <td>0.808980</td>\n",
       "      <td>0.788930</td>\n",
       "      <td>0.891066</td>\n",
       "      <td>0.980402</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>128</td>\n",
       "      <td>0.788508</td>\n",
       "      <td>0.790034</td>\n",
       "      <td>0.894630</td>\n",
       "      <td>0.979893</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>129</td>\n",
       "      <td>0.809369</td>\n",
       "      <td>0.789165</td>\n",
       "      <td>0.893103</td>\n",
       "      <td>0.976330</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>130</td>\n",
       "      <td>0.812365</td>\n",
       "      <td>0.785841</td>\n",
       "      <td>0.895393</td>\n",
       "      <td>0.981420</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>131</td>\n",
       "      <td>0.775934</td>\n",
       "      <td>0.786694</td>\n",
       "      <td>0.890303</td>\n",
       "      <td>0.981420</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>132</td>\n",
       "      <td>0.799943</td>\n",
       "      <td>0.781639</td>\n",
       "      <td>0.898193</td>\n",
       "      <td>0.979130</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>133</td>\n",
       "      <td>0.807766</td>\n",
       "      <td>0.775447</td>\n",
       "      <td>0.898193</td>\n",
       "      <td>0.980657</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>134</td>\n",
       "      <td>0.787837</td>\n",
       "      <td>0.792826</td>\n",
       "      <td>0.894884</td>\n",
       "      <td>0.980402</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>135</td>\n",
       "      <td>0.777542</td>\n",
       "      <td>0.775937</td>\n",
       "      <td>0.899975</td>\n",
       "      <td>0.979639</td>\n",
       "      <td>03:09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>136</td>\n",
       "      <td>0.800379</td>\n",
       "      <td>0.789576</td>\n",
       "      <td>0.894121</td>\n",
       "      <td>0.980657</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>137</td>\n",
       "      <td>0.791368</td>\n",
       "      <td>0.777862</td>\n",
       "      <td>0.895648</td>\n",
       "      <td>0.979384</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>138</td>\n",
       "      <td>0.790205</td>\n",
       "      <td>0.769741</td>\n",
       "      <td>0.899720</td>\n",
       "      <td>0.978875</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>139</td>\n",
       "      <td>0.814809</td>\n",
       "      <td>0.774724</td>\n",
       "      <td>0.900484</td>\n",
       "      <td>0.980402</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>140</td>\n",
       "      <td>0.808099</td>\n",
       "      <td>0.773148</td>\n",
       "      <td>0.900738</td>\n",
       "      <td>0.980657</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>141</td>\n",
       "      <td>0.797671</td>\n",
       "      <td>0.779960</td>\n",
       "      <td>0.897175</td>\n",
       "      <td>0.979639</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>142</td>\n",
       "      <td>0.799770</td>\n",
       "      <td>0.772913</td>\n",
       "      <td>0.901502</td>\n",
       "      <td>0.980911</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>143</td>\n",
       "      <td>0.785263</td>\n",
       "      <td>0.773641</td>\n",
       "      <td>0.900738</td>\n",
       "      <td>0.978366</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>144</td>\n",
       "      <td>0.787322</td>\n",
       "      <td>0.779166</td>\n",
       "      <td>0.898193</td>\n",
       "      <td>0.981675</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>145</td>\n",
       "      <td>0.799070</td>\n",
       "      <td>0.782099</td>\n",
       "      <td>0.900229</td>\n",
       "      <td>0.980402</td>\n",
       "      <td>03:09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>146</td>\n",
       "      <td>0.775885</td>\n",
       "      <td>0.772777</td>\n",
       "      <td>0.900738</td>\n",
       "      <td>0.980911</td>\n",
       "      <td>03:09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>147</td>\n",
       "      <td>0.770794</td>\n",
       "      <td>0.782720</td>\n",
       "      <td>0.895648</td>\n",
       "      <td>0.979130</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>148</td>\n",
       "      <td>0.781299</td>\n",
       "      <td>0.776418</td>\n",
       "      <td>0.901247</td>\n",
       "      <td>0.979639</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>149</td>\n",
       "      <td>0.785696</td>\n",
       "      <td>0.777101</td>\n",
       "      <td>0.897175</td>\n",
       "      <td>0.981929</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>150</td>\n",
       "      <td>0.792266</td>\n",
       "      <td>0.790596</td>\n",
       "      <td>0.894630</td>\n",
       "      <td>0.978875</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>151</td>\n",
       "      <td>0.779340</td>\n",
       "      <td>0.772817</td>\n",
       "      <td>0.900738</td>\n",
       "      <td>0.980402</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>152</td>\n",
       "      <td>0.786606</td>\n",
       "      <td>0.773514</td>\n",
       "      <td>0.897429</td>\n",
       "      <td>0.981420</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>153</td>\n",
       "      <td>0.789300</td>\n",
       "      <td>0.770250</td>\n",
       "      <td>0.899975</td>\n",
       "      <td>0.980911</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>154</td>\n",
       "      <td>0.769735</td>\n",
       "      <td>0.768284</td>\n",
       "      <td>0.900484</td>\n",
       "      <td>0.977857</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>155</td>\n",
       "      <td>0.778675</td>\n",
       "      <td>0.778413</td>\n",
       "      <td>0.897684</td>\n",
       "      <td>0.980402</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>156</td>\n",
       "      <td>0.773897</td>\n",
       "      <td>0.777208</td>\n",
       "      <td>0.901247</td>\n",
       "      <td>0.980148</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>157</td>\n",
       "      <td>0.777595</td>\n",
       "      <td>0.770012</td>\n",
       "      <td>0.899720</td>\n",
       "      <td>0.979130</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>158</td>\n",
       "      <td>0.767485</td>\n",
       "      <td>0.780961</td>\n",
       "      <td>0.896157</td>\n",
       "      <td>0.978875</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>159</td>\n",
       "      <td>0.785560</td>\n",
       "      <td>0.770928</td>\n",
       "      <td>0.906083</td>\n",
       "      <td>0.979130</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>160</td>\n",
       "      <td>0.787225</td>\n",
       "      <td>0.780465</td>\n",
       "      <td>0.901247</td>\n",
       "      <td>0.975821</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>161</td>\n",
       "      <td>0.770849</td>\n",
       "      <td>0.766888</td>\n",
       "      <td>0.899720</td>\n",
       "      <td>0.978621</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>162</td>\n",
       "      <td>0.753643</td>\n",
       "      <td>0.765408</td>\n",
       "      <td>0.903538</td>\n",
       "      <td>0.979639</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>163</td>\n",
       "      <td>0.784802</td>\n",
       "      <td>0.765017</td>\n",
       "      <td>0.902265</td>\n",
       "      <td>0.979639</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>164</td>\n",
       "      <td>0.795272</td>\n",
       "      <td>0.766907</td>\n",
       "      <td>0.900993</td>\n",
       "      <td>0.979384</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>165</td>\n",
       "      <td>0.765915</td>\n",
       "      <td>0.766967</td>\n",
       "      <td>0.903283</td>\n",
       "      <td>0.979130</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>166</td>\n",
       "      <td>0.765298</td>\n",
       "      <td>0.763799</td>\n",
       "      <td>0.906847</td>\n",
       "      <td>0.980402</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>167</td>\n",
       "      <td>0.759800</td>\n",
       "      <td>0.763778</td>\n",
       "      <td>0.907865</td>\n",
       "      <td>0.979384</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>168</td>\n",
       "      <td>0.772884</td>\n",
       "      <td>0.769829</td>\n",
       "      <td>0.901756</td>\n",
       "      <td>0.979130</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>169</td>\n",
       "      <td>0.786342</td>\n",
       "      <td>0.770502</td>\n",
       "      <td>0.899975</td>\n",
       "      <td>0.979893</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>170</td>\n",
       "      <td>0.753951</td>\n",
       "      <td>0.771580</td>\n",
       "      <td>0.902520</td>\n",
       "      <td>0.980148</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>171</td>\n",
       "      <td>0.779766</td>\n",
       "      <td>0.765706</td>\n",
       "      <td>0.903029</td>\n",
       "      <td>0.979384</td>\n",
       "      <td>03:09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>172</td>\n",
       "      <td>0.771842</td>\n",
       "      <td>0.764835</td>\n",
       "      <td>0.906083</td>\n",
       "      <td>0.979893</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>173</td>\n",
       "      <td>0.762191</td>\n",
       "      <td>0.765277</td>\n",
       "      <td>0.905828</td>\n",
       "      <td>0.979893</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>174</td>\n",
       "      <td>0.765040</td>\n",
       "      <td>0.761485</td>\n",
       "      <td>0.906847</td>\n",
       "      <td>0.979893</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>175</td>\n",
       "      <td>0.772610</td>\n",
       "      <td>0.761978</td>\n",
       "      <td>0.904301</td>\n",
       "      <td>0.980148</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>176</td>\n",
       "      <td>0.750315</td>\n",
       "      <td>0.763838</td>\n",
       "      <td>0.905828</td>\n",
       "      <td>0.980402</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>177</td>\n",
       "      <td>0.802258</td>\n",
       "      <td>0.756908</td>\n",
       "      <td>0.909392</td>\n",
       "      <td>0.978875</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>178</td>\n",
       "      <td>0.753460</td>\n",
       "      <td>0.756214</td>\n",
       "      <td>0.909901</td>\n",
       "      <td>0.981166</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>179</td>\n",
       "      <td>0.749210</td>\n",
       "      <td>0.756173</td>\n",
       "      <td>0.909392</td>\n",
       "      <td>0.979893</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>180</td>\n",
       "      <td>0.744264</td>\n",
       "      <td>0.760846</td>\n",
       "      <td>0.906592</td>\n",
       "      <td>0.981166</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>181</td>\n",
       "      <td>0.788660</td>\n",
       "      <td>0.762421</td>\n",
       "      <td>0.905065</td>\n",
       "      <td>0.980148</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>182</td>\n",
       "      <td>0.766599</td>\n",
       "      <td>0.760563</td>\n",
       "      <td>0.905828</td>\n",
       "      <td>0.980148</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>183</td>\n",
       "      <td>0.756294</td>\n",
       "      <td>0.757930</td>\n",
       "      <td>0.908374</td>\n",
       "      <td>0.980657</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>184</td>\n",
       "      <td>0.763923</td>\n",
       "      <td>0.758174</td>\n",
       "      <td>0.907356</td>\n",
       "      <td>0.978875</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>185</td>\n",
       "      <td>0.773322</td>\n",
       "      <td>0.762071</td>\n",
       "      <td>0.906337</td>\n",
       "      <td>0.977602</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>186</td>\n",
       "      <td>0.769570</td>\n",
       "      <td>0.760237</td>\n",
       "      <td>0.907356</td>\n",
       "      <td>0.977857</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>187</td>\n",
       "      <td>0.764124</td>\n",
       "      <td>0.756056</td>\n",
       "      <td>0.907865</td>\n",
       "      <td>0.977857</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>188</td>\n",
       "      <td>0.769589</td>\n",
       "      <td>0.758767</td>\n",
       "      <td>0.907610</td>\n",
       "      <td>0.977093</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>189</td>\n",
       "      <td>0.755569</td>\n",
       "      <td>0.757829</td>\n",
       "      <td>0.908628</td>\n",
       "      <td>0.980657</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>190</td>\n",
       "      <td>0.761956</td>\n",
       "      <td>0.754851</td>\n",
       "      <td>0.908628</td>\n",
       "      <td>0.981166</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>191</td>\n",
       "      <td>0.750691</td>\n",
       "      <td>0.755563</td>\n",
       "      <td>0.907865</td>\n",
       "      <td>0.979893</td>\n",
       "      <td>03:09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>192</td>\n",
       "      <td>0.759627</td>\n",
       "      <td>0.758709</td>\n",
       "      <td>0.907101</td>\n",
       "      <td>0.980402</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>193</td>\n",
       "      <td>0.745331</td>\n",
       "      <td>0.756942</td>\n",
       "      <td>0.908883</td>\n",
       "      <td>0.979384</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>194</td>\n",
       "      <td>0.776256</td>\n",
       "      <td>0.756177</td>\n",
       "      <td>0.909646</td>\n",
       "      <td>0.978875</td>\n",
       "      <td>03:09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>195</td>\n",
       "      <td>0.748742</td>\n",
       "      <td>0.757437</td>\n",
       "      <td>0.907356</td>\n",
       "      <td>0.979130</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>196</td>\n",
       "      <td>0.776203</td>\n",
       "      <td>0.754787</td>\n",
       "      <td>0.909137</td>\n",
       "      <td>0.979639</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>197</td>\n",
       "      <td>0.769914</td>\n",
       "      <td>0.754609</td>\n",
       "      <td>0.909901</td>\n",
       "      <td>0.980657</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>198</td>\n",
       "      <td>0.761054</td>\n",
       "      <td>0.757945</td>\n",
       "      <td>0.909392</td>\n",
       "      <td>0.977093</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>199</td>\n",
       "      <td>0.764098</td>\n",
       "      <td>0.756112</td>\n",
       "      <td>0.909137</td>\n",
       "      <td>0.978366</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "IOPub message rate exceeded.\n",
      "The notebook server will temporarily stop sending output\n",
      "to the client in order to avoid crashing it.\n",
      "To change this limit, set the config variable\n",
      "`--NotebookApp.iopub_msg_rate_limit`.\n",
      "\n",
      "Current values:\n",
      "NotebookApp.iopub_msg_rate_limit=1000.0 (msgs/sec)\n",
      "NotebookApp.rate_limit_window=3.0 (secs)\n",
      "\n",
      "IOPub message rate exceeded.\n",
      "The notebook server will temporarily stop sending output\n",
      "to the client in order to avoid crashing it.\n",
      "To change this limit, set the config variable\n",
      "`--NotebookApp.iopub_msg_rate_limit`.\n",
      "\n",
      "Current values:\n",
      "NotebookApp.iopub_msg_rate_limit=1000.0 (msgs/sec)\n",
      "NotebookApp.rate_limit_window=3.0 (secs)\n",
      "\n",
      "IOPub message rate exceeded.\n",
      "The notebook server will temporarily stop sending output\n",
      "to the client in order to avoid crashing it.\n",
      "To change this limit, set the config variable\n",
      "`--NotebookApp.iopub_msg_rate_limit`.\n",
      "\n",
      "Current values:\n",
      "NotebookApp.iopub_msg_rate_limit=1000.0 (msgs/sec)\n",
      "NotebookApp.rate_limit_window=3.0 (secs)\n",
      "\n"
     ]
    }
   ],
   "source": [
    "learn = get_learn(model=model,size=size,bs=bs,mixup=mixup)\n",
    "learn.fit_fc(epochs, lr, moms,start_pct)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[tensor(0.9091), tensor(0.9784)]"
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "learn.recorder.metrics[-1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[tensor(0.8804), tensor(0.9784)]"
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "learn.recorder.metrics[79]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "learn.recorder.plot_losses()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "learn.recorder.plot_metrics()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "learn.recorder.metrics"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "res = ''\n",
    "for num, i in enumerate(learn.recorder.metrics):\n",
    "    res += f\"{num}, {i[0].item()}, {i[1].item()} \\n\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "with open('log_s192_e200_1.txt','w') as f:\n",
    "        f.writelines(res)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "data path   /notebooks/data/imagewoof2\n",
      "Learn path /notebooks/data/imagewoof2\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "\n",
       "    <div>\n",
       "        <style>\n",
       "            /* Turns off some styling */\n",
       "            progress {\n",
       "                /* gets rid of default border in Firefox and Opera. */\n",
       "                border: none;\n",
       "                /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
       "                background-size: auto;\n",
       "            }\n",
       "            .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
       "                background: #F44336;\n",
       "            }\n",
       "        </style>\n",
       "      <progress value='52' class='' max='200', style='width:300px; height:20px; vertical-align: middle;'></progress>\n",
       "      26.00% [52/200 2:45:50<7:52:00]\n",
       "    </div>\n",
       "    \n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: left;\">\n",
       "      <th>epoch</th>\n",
       "      <th>train_loss</th>\n",
       "      <th>valid_loss</th>\n",
       "      <th>accuracy</th>\n",
       "      <th>top_k_accuracy</th>\n",
       "      <th>time</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>2.002590</td>\n",
       "      <td>1.810611</td>\n",
       "      <td>0.417664</td>\n",
       "      <td>0.879613</td>\n",
       "      <td>03:02</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>1.830248</td>\n",
       "      <td>1.600150</td>\n",
       "      <td>0.504709</td>\n",
       "      <td>0.917536</td>\n",
       "      <td>03:06</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2</td>\n",
       "      <td>1.720315</td>\n",
       "      <td>1.528735</td>\n",
       "      <td>0.552303</td>\n",
       "      <td>0.932298</td>\n",
       "      <td>03:09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>3</td>\n",
       "      <td>1.631556</td>\n",
       "      <td>1.402755</td>\n",
       "      <td>0.622550</td>\n",
       "      <td>0.941715</td>\n",
       "      <td>03:09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>4</td>\n",
       "      <td>1.536969</td>\n",
       "      <td>1.237356</td>\n",
       "      <td>0.706287</td>\n",
       "      <td>0.954950</td>\n",
       "      <td>03:09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>5</td>\n",
       "      <td>1.480957</td>\n",
       "      <td>1.180963</td>\n",
       "      <td>0.726393</td>\n",
       "      <td>0.961059</td>\n",
       "      <td>03:09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>6</td>\n",
       "      <td>1.463716</td>\n",
       "      <td>1.189371</td>\n",
       "      <td>0.709595</td>\n",
       "      <td>0.966913</td>\n",
       "      <td>03:09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>7</td>\n",
       "      <td>1.383032</td>\n",
       "      <td>1.111690</td>\n",
       "      <td>0.761517</td>\n",
       "      <td>0.962331</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>8</td>\n",
       "      <td>1.358988</td>\n",
       "      <td>1.054605</td>\n",
       "      <td>0.781878</td>\n",
       "      <td>0.973021</td>\n",
       "      <td>03:09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>9</td>\n",
       "      <td>1.332456</td>\n",
       "      <td>1.018254</td>\n",
       "      <td>0.797658</td>\n",
       "      <td>0.973785</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>10</td>\n",
       "      <td>1.305532</td>\n",
       "      <td>0.997953</td>\n",
       "      <td>0.808857</td>\n",
       "      <td>0.977857</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>11</td>\n",
       "      <td>1.284425</td>\n",
       "      <td>0.990409</td>\n",
       "      <td>0.809875</td>\n",
       "      <td>0.978875</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>12</td>\n",
       "      <td>1.253361</td>\n",
       "      <td>0.983282</td>\n",
       "      <td>0.808094</td>\n",
       "      <td>0.978875</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>13</td>\n",
       "      <td>1.257407</td>\n",
       "      <td>0.971553</td>\n",
       "      <td>0.812930</td>\n",
       "      <td>0.979130</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>14</td>\n",
       "      <td>1.229761</td>\n",
       "      <td>0.946313</td>\n",
       "      <td>0.834309</td>\n",
       "      <td>0.981166</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>15</td>\n",
       "      <td>1.204314</td>\n",
       "      <td>0.946899</td>\n",
       "      <td>0.822092</td>\n",
       "      <td>0.984220</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>16</td>\n",
       "      <td>1.212801</td>\n",
       "      <td>0.933512</td>\n",
       "      <td>0.833291</td>\n",
       "      <td>0.983965</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>17</td>\n",
       "      <td>1.161684</td>\n",
       "      <td>0.923605</td>\n",
       "      <td>0.834054</td>\n",
       "      <td>0.981166</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>18</td>\n",
       "      <td>1.173771</td>\n",
       "      <td>0.921152</td>\n",
       "      <td>0.839145</td>\n",
       "      <td>0.982693</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>19</td>\n",
       "      <td>1.124732</td>\n",
       "      <td>0.908302</td>\n",
       "      <td>0.845762</td>\n",
       "      <td>0.983202</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>20</td>\n",
       "      <td>1.150656</td>\n",
       "      <td>0.901182</td>\n",
       "      <td>0.844999</td>\n",
       "      <td>0.983965</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>21</td>\n",
       "      <td>1.105468</td>\n",
       "      <td>0.895439</td>\n",
       "      <td>0.849071</td>\n",
       "      <td>0.982184</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>22</td>\n",
       "      <td>1.117533</td>\n",
       "      <td>0.882728</td>\n",
       "      <td>0.852634</td>\n",
       "      <td>0.984220</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>23</td>\n",
       "      <td>1.094310</td>\n",
       "      <td>0.878502</td>\n",
       "      <td>0.855943</td>\n",
       "      <td>0.983711</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>24</td>\n",
       "      <td>1.090289</td>\n",
       "      <td>0.874100</td>\n",
       "      <td>0.859252</td>\n",
       "      <td>0.982947</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>25</td>\n",
       "      <td>1.050075</td>\n",
       "      <td>0.867051</td>\n",
       "      <td>0.862815</td>\n",
       "      <td>0.983965</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>26</td>\n",
       "      <td>1.079747</td>\n",
       "      <td>0.888321</td>\n",
       "      <td>0.853652</td>\n",
       "      <td>0.980657</td>\n",
       "      <td>03:13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>27</td>\n",
       "      <td>1.049477</td>\n",
       "      <td>0.870383</td>\n",
       "      <td>0.861542</td>\n",
       "      <td>0.983456</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>28</td>\n",
       "      <td>1.066831</td>\n",
       "      <td>0.864478</td>\n",
       "      <td>0.859506</td>\n",
       "      <td>0.986002</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>29</td>\n",
       "      <td>1.014575</td>\n",
       "      <td>0.861971</td>\n",
       "      <td>0.863324</td>\n",
       "      <td>0.983456</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>30</td>\n",
       "      <td>1.056239</td>\n",
       "      <td>0.865660</td>\n",
       "      <td>0.864088</td>\n",
       "      <td>0.981166</td>\n",
       "      <td>03:13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>31</td>\n",
       "      <td>1.027820</td>\n",
       "      <td>0.857042</td>\n",
       "      <td>0.862306</td>\n",
       "      <td>0.984474</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>32</td>\n",
       "      <td>1.003312</td>\n",
       "      <td>0.859859</td>\n",
       "      <td>0.867396</td>\n",
       "      <td>0.978875</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>33</td>\n",
       "      <td>1.019259</td>\n",
       "      <td>0.844534</td>\n",
       "      <td>0.874777</td>\n",
       "      <td>0.982693</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>34</td>\n",
       "      <td>0.998249</td>\n",
       "      <td>0.861245</td>\n",
       "      <td>0.865360</td>\n",
       "      <td>0.981166</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>35</td>\n",
       "      <td>1.010330</td>\n",
       "      <td>0.869459</td>\n",
       "      <td>0.858743</td>\n",
       "      <td>0.981420</td>\n",
       "      <td>03:13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>36</td>\n",
       "      <td>0.973612</td>\n",
       "      <td>0.847447</td>\n",
       "      <td>0.866633</td>\n",
       "      <td>0.983202</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>37</td>\n",
       "      <td>0.967359</td>\n",
       "      <td>0.874741</td>\n",
       "      <td>0.856197</td>\n",
       "      <td>0.980657</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>38</td>\n",
       "      <td>0.997503</td>\n",
       "      <td>0.853144</td>\n",
       "      <td>0.871469</td>\n",
       "      <td>0.980402</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>39</td>\n",
       "      <td>0.979709</td>\n",
       "      <td>0.840048</td>\n",
       "      <td>0.870705</td>\n",
       "      <td>0.984983</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>40</td>\n",
       "      <td>0.974397</td>\n",
       "      <td>0.846577</td>\n",
       "      <td>0.868160</td>\n",
       "      <td>0.980148</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>41</td>\n",
       "      <td>0.951153</td>\n",
       "      <td>0.825326</td>\n",
       "      <td>0.874777</td>\n",
       "      <td>0.985238</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>42</td>\n",
       "      <td>0.956774</td>\n",
       "      <td>0.844695</td>\n",
       "      <td>0.866887</td>\n",
       "      <td>0.986256</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>43</td>\n",
       "      <td>0.958107</td>\n",
       "      <td>0.839057</td>\n",
       "      <td>0.871469</td>\n",
       "      <td>0.981929</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>44</td>\n",
       "      <td>0.953880</td>\n",
       "      <td>0.847327</td>\n",
       "      <td>0.871723</td>\n",
       "      <td>0.982184</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>45</td>\n",
       "      <td>0.921494</td>\n",
       "      <td>0.827557</td>\n",
       "      <td>0.876304</td>\n",
       "      <td>0.985492</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>46</td>\n",
       "      <td>0.954636</td>\n",
       "      <td>0.818626</td>\n",
       "      <td>0.878595</td>\n",
       "      <td>0.983202</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>47</td>\n",
       "      <td>0.925187</td>\n",
       "      <td>0.822816</td>\n",
       "      <td>0.878341</td>\n",
       "      <td>0.984729</td>\n",
       "      <td>03:13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>48</td>\n",
       "      <td>0.936502</td>\n",
       "      <td>0.835819</td>\n",
       "      <td>0.870450</td>\n",
       "      <td>0.986765</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>49</td>\n",
       "      <td>0.928081</td>\n",
       "      <td>0.830672</td>\n",
       "      <td>0.871723</td>\n",
       "      <td>0.984983</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>50</td>\n",
       "      <td>0.919617</td>\n",
       "      <td>0.837665</td>\n",
       "      <td>0.875541</td>\n",
       "      <td>0.982184</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>51</td>\n",
       "      <td>0.911662</td>\n",
       "      <td>0.835665</td>\n",
       "      <td>0.870196</td>\n",
       "      <td>0.980657</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table><p>\n",
       "\n",
       "    <div>\n",
       "        <style>\n",
       "            /* Turns off some styling */\n",
       "            progress {\n",
       "                /* gets rid of default border in Firefox and Opera. */\n",
       "                border: none;\n",
       "                /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
       "                background-size: auto;\n",
       "            }\n",
       "            .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
       "                background: #F44336;\n",
       "            }\n",
       "        </style>\n",
       "      <progress value='276' class='' max='564', style='width:300px; height:20px; vertical-align: middle;'></progress>\n",
       "      48.94% [276/564 01:22<01:25 0.9116]\n",
       "    </div>\n",
       "    "
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "IOPub message rate exceeded.\n",
      "The notebook server will temporarily stop sending output\n",
      "to the client in order to avoid crashing it.\n",
      "To change this limit, set the config variable\n",
      "`--NotebookApp.iopub_msg_rate_limit`.\n",
      "\n",
      "Current values:\n",
      "NotebookApp.iopub_msg_rate_limit=1000.0 (msgs/sec)\n",
      "NotebookApp.rate_limit_window=3.0 (secs)\n",
      "\n",
      "IOPub message rate exceeded.\n",
      "The notebook server will temporarily stop sending output\n",
      "to the client in order to avoid crashing it.\n",
      "To change this limit, set the config variable\n",
      "`--NotebookApp.iopub_msg_rate_limit`.\n",
      "\n",
      "Current values:\n",
      "NotebookApp.iopub_msg_rate_limit=1000.0 (msgs/sec)\n",
      "NotebookApp.rate_limit_window=3.0 (secs)\n",
      "\n",
      "IOPub message rate exceeded.\n",
      "The notebook server will temporarily stop sending output\n",
      "to the client in order to avoid crashing it.\n",
      "To change this limit, set the config variable\n",
      "`--NotebookApp.iopub_msg_rate_limit`.\n",
      "\n",
      "Current values:\n",
      "NotebookApp.iopub_msg_rate_limit=1000.0 (msgs/sec)\n",
      "NotebookApp.rate_limit_window=3.0 (secs)\n",
      "\n",
      "IOPub message rate exceeded.\n",
      "The notebook server will temporarily stop sending output\n",
      "to the client in order to avoid crashing it.\n",
      "To change this limit, set the config variable\n",
      "`--NotebookApp.iopub_msg_rate_limit`.\n",
      "\n",
      "Current values:\n",
      "NotebookApp.iopub_msg_rate_limit=1000.0 (msgs/sec)\n",
      "NotebookApp.rate_limit_window=3.0 (secs)\n",
      "\n"
     ]
    }
   ],
   "source": [
    "learn = get_learn(model=model,size=size,bs=bs,mixup=mixup)\n",
    "learn.fit_fc(epochs, lr, moms,start_pct)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[tensor(0.9109), tensor(0.9840)]"
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "learn.recorder.metrics[-1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.9109188318252563"
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "learn.recorder.metrics[-1][0].item()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[tensor(0.8885), tensor(0.9814)]"
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "learn.recorder.metrics[79]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "learn.recorder.plot_losses()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "learn.recorder.plot_metrics()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "res = ''\n",
    "for num, i in enumerate(learn.recorder.metrics):\n",
    "    res += f\"{num}, {i[0].item()}, {i[1].item()} \\n\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "with open('log_s256_e200_2.txt','w') as f:\n",
    "        f.writelines(res)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "loss = ''\n",
    "for num, i in enumerate(learn.recorder.losses):\n",
    "    loss += f\"{num}, {i.item()} \\n\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "with open('log_loss_s256_e200_2.txt','w') as f:\n",
    "        f.writelines(loss)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "val_loss = ''\n",
    "for num, i in enumerate(learn.recorder.val_losses):\n",
    "    val_loss += f\"{num}, {i.item()}\\n\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "with open('log_valloss_s256_e200_2.txt','w') as f:\n",
    "        f.writelines(val_loss)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "data path   /notebooks/data/imagewoof2\n",
      "Learn path /notebooks/data/imagewoof2\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "\n",
       "    <div>\n",
       "        <style>\n",
       "            /* Turns off some styling */\n",
       "            progress {\n",
       "                /* gets rid of default border in Firefox and Opera. */\n",
       "                border: none;\n",
       "                /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
       "                background-size: auto;\n",
       "            }\n",
       "            .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
       "                background: #F44336;\n",
       "            }\n",
       "        </style>\n",
       "      <progress value='88' class='' max='200', style='width:300px; height:20px; vertical-align: middle;'></progress>\n",
       "      44.00% [88/200 4:42:28<5:59:30]\n",
       "    </div>\n",
       "    \n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: left;\">\n",
       "      <th>epoch</th>\n",
       "      <th>train_loss</th>\n",
       "      <th>valid_loss</th>\n",
       "      <th>accuracy</th>\n",
       "      <th>top_k_accuracy</th>\n",
       "      <th>time</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>2.085628</td>\n",
       "      <td>1.926703</td>\n",
       "      <td>0.346908</td>\n",
       "      <td>0.851362</td>\n",
       "      <td>03:03</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>1.895516</td>\n",
       "      <td>1.774428</td>\n",
       "      <td>0.416136</td>\n",
       "      <td>0.887249</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2</td>\n",
       "      <td>1.741375</td>\n",
       "      <td>1.475364</td>\n",
       "      <td>0.583609</td>\n",
       "      <td>0.939934</td>\n",
       "      <td>03:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>3</td>\n",
       "      <td>1.593219</td>\n",
       "      <td>1.415052</td>\n",
       "      <td>0.612624</td>\n",
       "      <td>0.940952</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>4</td>\n",
       "      <td>1.553557</td>\n",
       "      <td>1.253495</td>\n",
       "      <td>0.689743</td>\n",
       "      <td>0.964368</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>5</td>\n",
       "      <td>1.526449</td>\n",
       "      <td>1.233745</td>\n",
       "      <td>0.711377</td>\n",
       "      <td>0.962331</td>\n",
       "      <td>03:13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>6</td>\n",
       "      <td>1.441088</td>\n",
       "      <td>1.122864</td>\n",
       "      <td>0.754136</td>\n",
       "      <td>0.967422</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>7</td>\n",
       "      <td>1.405226</td>\n",
       "      <td>1.107786</td>\n",
       "      <td>0.760753</td>\n",
       "      <td>0.973276</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>8</td>\n",
       "      <td>1.347943</td>\n",
       "      <td>1.091935</td>\n",
       "      <td>0.761771</td>\n",
       "      <td>0.969458</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>9</td>\n",
       "      <td>1.344695</td>\n",
       "      <td>1.040816</td>\n",
       "      <td>0.794859</td>\n",
       "      <td>0.975566</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>10</td>\n",
       "      <td>1.307432</td>\n",
       "      <td>1.019192</td>\n",
       "      <td>0.798676</td>\n",
       "      <td>0.976075</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>11</td>\n",
       "      <td>1.276911</td>\n",
       "      <td>0.966820</td>\n",
       "      <td>0.818529</td>\n",
       "      <td>0.979639</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>12</td>\n",
       "      <td>1.288942</td>\n",
       "      <td>0.993457</td>\n",
       "      <td>0.807330</td>\n",
       "      <td>0.978875</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>13</td>\n",
       "      <td>1.230345</td>\n",
       "      <td>0.965972</td>\n",
       "      <td>0.820565</td>\n",
       "      <td>0.982693</td>\n",
       "      <td>03:13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>14</td>\n",
       "      <td>1.240419</td>\n",
       "      <td>0.945237</td>\n",
       "      <td>0.832018</td>\n",
       "      <td>0.977857</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>15</td>\n",
       "      <td>1.217683</td>\n",
       "      <td>0.930111</td>\n",
       "      <td>0.836600</td>\n",
       "      <td>0.983456</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>16</td>\n",
       "      <td>1.176798</td>\n",
       "      <td>0.929315</td>\n",
       "      <td>0.834054</td>\n",
       "      <td>0.983202</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>17</td>\n",
       "      <td>1.154528</td>\n",
       "      <td>0.905047</td>\n",
       "      <td>0.845762</td>\n",
       "      <td>0.985238</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>18</td>\n",
       "      <td>1.196782</td>\n",
       "      <td>0.920766</td>\n",
       "      <td>0.842963</td>\n",
       "      <td>0.981675</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>19</td>\n",
       "      <td>1.149266</td>\n",
       "      <td>0.894969</td>\n",
       "      <td>0.850598</td>\n",
       "      <td>0.985492</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>20</td>\n",
       "      <td>1.140000</td>\n",
       "      <td>0.888376</td>\n",
       "      <td>0.853143</td>\n",
       "      <td>0.986002</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>21</td>\n",
       "      <td>1.108535</td>\n",
       "      <td>0.887255</td>\n",
       "      <td>0.853907</td>\n",
       "      <td>0.984983</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>22</td>\n",
       "      <td>1.111977</td>\n",
       "      <td>0.893167</td>\n",
       "      <td>0.851616</td>\n",
       "      <td>0.983965</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>23</td>\n",
       "      <td>1.072171</td>\n",
       "      <td>0.898660</td>\n",
       "      <td>0.846017</td>\n",
       "      <td>0.986002</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>24</td>\n",
       "      <td>1.081822</td>\n",
       "      <td>0.870333</td>\n",
       "      <td>0.860015</td>\n",
       "      <td>0.984729</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>25</td>\n",
       "      <td>1.075037</td>\n",
       "      <td>0.871848</td>\n",
       "      <td>0.865869</td>\n",
       "      <td>0.986002</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>26</td>\n",
       "      <td>1.067516</td>\n",
       "      <td>0.880885</td>\n",
       "      <td>0.855688</td>\n",
       "      <td>0.984729</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>27</td>\n",
       "      <td>1.075529</td>\n",
       "      <td>0.866788</td>\n",
       "      <td>0.862306</td>\n",
       "      <td>0.984729</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>28</td>\n",
       "      <td>1.057693</td>\n",
       "      <td>0.850744</td>\n",
       "      <td>0.871214</td>\n",
       "      <td>0.983456</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>29</td>\n",
       "      <td>1.061441</td>\n",
       "      <td>0.856059</td>\n",
       "      <td>0.865869</td>\n",
       "      <td>0.983202</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>30</td>\n",
       "      <td>1.027691</td>\n",
       "      <td>0.860411</td>\n",
       "      <td>0.863324</td>\n",
       "      <td>0.986256</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>31</td>\n",
       "      <td>1.035316</td>\n",
       "      <td>0.862597</td>\n",
       "      <td>0.865869</td>\n",
       "      <td>0.983965</td>\n",
       "      <td>03:13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>32</td>\n",
       "      <td>1.003456</td>\n",
       "      <td>0.861584</td>\n",
       "      <td>0.863578</td>\n",
       "      <td>0.983965</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>33</td>\n",
       "      <td>1.034228</td>\n",
       "      <td>0.866246</td>\n",
       "      <td>0.865869</td>\n",
       "      <td>0.981675</td>\n",
       "      <td>03:13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>34</td>\n",
       "      <td>1.001483</td>\n",
       "      <td>0.838825</td>\n",
       "      <td>0.878850</td>\n",
       "      <td>0.984474</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>35</td>\n",
       "      <td>1.003820</td>\n",
       "      <td>0.829935</td>\n",
       "      <td>0.876559</td>\n",
       "      <td>0.985492</td>\n",
       "      <td>03:13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>36</td>\n",
       "      <td>0.993257</td>\n",
       "      <td>0.818124</td>\n",
       "      <td>0.882922</td>\n",
       "      <td>0.987274</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>37</td>\n",
       "      <td>0.992729</td>\n",
       "      <td>0.854405</td>\n",
       "      <td>0.867651</td>\n",
       "      <td>0.984474</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>38</td>\n",
       "      <td>0.993663</td>\n",
       "      <td>0.850598</td>\n",
       "      <td>0.871723</td>\n",
       "      <td>0.982438</td>\n",
       "      <td>03:13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>39</td>\n",
       "      <td>0.991241</td>\n",
       "      <td>0.835482</td>\n",
       "      <td>0.876304</td>\n",
       "      <td>0.986765</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>40</td>\n",
       "      <td>0.974662</td>\n",
       "      <td>0.828158</td>\n",
       "      <td>0.877832</td>\n",
       "      <td>0.983202</td>\n",
       "      <td>03:13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>41</td>\n",
       "      <td>0.963027</td>\n",
       "      <td>0.856328</td>\n",
       "      <td>0.860270</td>\n",
       "      <td>0.984474</td>\n",
       "      <td>03:13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>42</td>\n",
       "      <td>0.982493</td>\n",
       "      <td>0.835391</td>\n",
       "      <td>0.873250</td>\n",
       "      <td>0.985238</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>43</td>\n",
       "      <td>0.984578</td>\n",
       "      <td>0.842147</td>\n",
       "      <td>0.870705</td>\n",
       "      <td>0.981420</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>44</td>\n",
       "      <td>0.951321</td>\n",
       "      <td>0.828390</td>\n",
       "      <td>0.878595</td>\n",
       "      <td>0.985492</td>\n",
       "      <td>03:13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>45</td>\n",
       "      <td>0.957770</td>\n",
       "      <td>0.835362</td>\n",
       "      <td>0.875795</td>\n",
       "      <td>0.982693</td>\n",
       "      <td>03:13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>46</td>\n",
       "      <td>0.940110</td>\n",
       "      <td>0.820832</td>\n",
       "      <td>0.880631</td>\n",
       "      <td>0.986765</td>\n",
       "      <td>03:13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>47</td>\n",
       "      <td>0.951100</td>\n",
       "      <td>0.843156</td>\n",
       "      <td>0.879613</td>\n",
       "      <td>0.979384</td>\n",
       "      <td>03:13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>48</td>\n",
       "      <td>0.933005</td>\n",
       "      <td>0.828611</td>\n",
       "      <td>0.872996</td>\n",
       "      <td>0.983456</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>49</td>\n",
       "      <td>0.933544</td>\n",
       "      <td>0.834998</td>\n",
       "      <td>0.874523</td>\n",
       "      <td>0.984220</td>\n",
       "      <td>03:13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>50</td>\n",
       "      <td>0.924666</td>\n",
       "      <td>0.823242</td>\n",
       "      <td>0.881649</td>\n",
       "      <td>0.983456</td>\n",
       "      <td>03:13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>51</td>\n",
       "      <td>0.929073</td>\n",
       "      <td>0.838238</td>\n",
       "      <td>0.875286</td>\n",
       "      <td>0.981675</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>52</td>\n",
       "      <td>0.919836</td>\n",
       "      <td>0.868319</td>\n",
       "      <td>0.859761</td>\n",
       "      <td>0.982947</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>53</td>\n",
       "      <td>0.913813</td>\n",
       "      <td>0.817079</td>\n",
       "      <td>0.885467</td>\n",
       "      <td>0.986002</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>54</td>\n",
       "      <td>0.942287</td>\n",
       "      <td>0.872057</td>\n",
       "      <td>0.862560</td>\n",
       "      <td>0.982438</td>\n",
       "      <td>03:13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>55</td>\n",
       "      <td>0.903384</td>\n",
       "      <td>0.840579</td>\n",
       "      <td>0.876304</td>\n",
       "      <td>0.980657</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>56</td>\n",
       "      <td>0.932358</td>\n",
       "      <td>0.833051</td>\n",
       "      <td>0.872741</td>\n",
       "      <td>0.983456</td>\n",
       "      <td>03:13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>57</td>\n",
       "      <td>0.908799</td>\n",
       "      <td>0.850512</td>\n",
       "      <td>0.875286</td>\n",
       "      <td>0.979893</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>58</td>\n",
       "      <td>0.901367</td>\n",
       "      <td>0.812963</td>\n",
       "      <td>0.886994</td>\n",
       "      <td>0.984729</td>\n",
       "      <td>03:14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>59</td>\n",
       "      <td>0.905110</td>\n",
       "      <td>0.832262</td>\n",
       "      <td>0.878086</td>\n",
       "      <td>0.982184</td>\n",
       "      <td>03:14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>60</td>\n",
       "      <td>0.905155</td>\n",
       "      <td>0.816390</td>\n",
       "      <td>0.883940</td>\n",
       "      <td>0.981675</td>\n",
       "      <td>03:13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>61</td>\n",
       "      <td>0.902063</td>\n",
       "      <td>0.845501</td>\n",
       "      <td>0.872996</td>\n",
       "      <td>0.984474</td>\n",
       "      <td>03:14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>62</td>\n",
       "      <td>0.911253</td>\n",
       "      <td>0.849092</td>\n",
       "      <td>0.869941</td>\n",
       "      <td>0.981420</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>63</td>\n",
       "      <td>0.879200</td>\n",
       "      <td>0.829927</td>\n",
       "      <td>0.882922</td>\n",
       "      <td>0.980148</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>64</td>\n",
       "      <td>0.890513</td>\n",
       "      <td>0.830050</td>\n",
       "      <td>0.882667</td>\n",
       "      <td>0.982947</td>\n",
       "      <td>03:13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>65</td>\n",
       "      <td>0.876423</td>\n",
       "      <td>0.828842</td>\n",
       "      <td>0.879868</td>\n",
       "      <td>0.982438</td>\n",
       "      <td>03:13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>66</td>\n",
       "      <td>0.905691</td>\n",
       "      <td>0.823838</td>\n",
       "      <td>0.877832</td>\n",
       "      <td>0.980657</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>67</td>\n",
       "      <td>0.877971</td>\n",
       "      <td>0.816633</td>\n",
       "      <td>0.880631</td>\n",
       "      <td>0.985238</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>68</td>\n",
       "      <td>0.892103</td>\n",
       "      <td>0.820778</td>\n",
       "      <td>0.882158</td>\n",
       "      <td>0.979384</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>69</td>\n",
       "      <td>0.877083</td>\n",
       "      <td>0.820262</td>\n",
       "      <td>0.879104</td>\n",
       "      <td>0.981929</td>\n",
       "      <td>03:13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>70</td>\n",
       "      <td>0.895517</td>\n",
       "      <td>0.831423</td>\n",
       "      <td>0.878341</td>\n",
       "      <td>0.983711</td>\n",
       "      <td>03:14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>71</td>\n",
       "      <td>0.882919</td>\n",
       "      <td>0.832761</td>\n",
       "      <td>0.875032</td>\n",
       "      <td>0.982947</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>72</td>\n",
       "      <td>0.867441</td>\n",
       "      <td>0.792046</td>\n",
       "      <td>0.893357</td>\n",
       "      <td>0.982184</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>73</td>\n",
       "      <td>0.890835</td>\n",
       "      <td>0.814826</td>\n",
       "      <td>0.879868</td>\n",
       "      <td>0.984983</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>74</td>\n",
       "      <td>0.867056</td>\n",
       "      <td>0.816388</td>\n",
       "      <td>0.885722</td>\n",
       "      <td>0.980911</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>75</td>\n",
       "      <td>0.880613</td>\n",
       "      <td>0.828262</td>\n",
       "      <td>0.880886</td>\n",
       "      <td>0.976839</td>\n",
       "      <td>03:13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>76</td>\n",
       "      <td>0.884327</td>\n",
       "      <td>0.823083</td>\n",
       "      <td>0.876559</td>\n",
       "      <td>0.984729</td>\n",
       "      <td>03:13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>77</td>\n",
       "      <td>0.861295</td>\n",
       "      <td>0.821883</td>\n",
       "      <td>0.876813</td>\n",
       "      <td>0.982693</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>78</td>\n",
       "      <td>0.873572</td>\n",
       "      <td>0.811163</td>\n",
       "      <td>0.879359</td>\n",
       "      <td>0.982947</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>79</td>\n",
       "      <td>0.883688</td>\n",
       "      <td>0.846271</td>\n",
       "      <td>0.875032</td>\n",
       "      <td>0.978112</td>\n",
       "      <td>03:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>80</td>\n",
       "      <td>0.865665</td>\n",
       "      <td>0.838656</td>\n",
       "      <td>0.874268</td>\n",
       "      <td>0.980911</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>81</td>\n",
       "      <td>0.873157</td>\n",
       "      <td>0.813331</td>\n",
       "      <td>0.883176</td>\n",
       "      <td>0.981929</td>\n",
       "      <td>03:13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>82</td>\n",
       "      <td>0.857242</td>\n",
       "      <td>0.810142</td>\n",
       "      <td>0.884703</td>\n",
       "      <td>0.979639</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>83</td>\n",
       "      <td>0.847768</td>\n",
       "      <td>0.816546</td>\n",
       "      <td>0.882158</td>\n",
       "      <td>0.982947</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>84</td>\n",
       "      <td>0.881716</td>\n",
       "      <td>0.802306</td>\n",
       "      <td>0.892594</td>\n",
       "      <td>0.982947</td>\n",
       "      <td>03:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>85</td>\n",
       "      <td>0.846944</td>\n",
       "      <td>0.801329</td>\n",
       "      <td>0.885467</td>\n",
       "      <td>0.986765</td>\n",
       "      <td>03:13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>86</td>\n",
       "      <td>0.860863</td>\n",
       "      <td>0.789581</td>\n",
       "      <td>0.892084</td>\n",
       "      <td>0.982438</td>\n",
       "      <td>03:13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>87</td>\n",
       "      <td>0.852719</td>\n",
       "      <td>0.806560</td>\n",
       "      <td>0.886485</td>\n",
       "      <td>0.980402</td>\n",
       "      <td>03:13</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table><p>\n",
       "\n",
       "    <div>\n",
       "        <style>\n",
       "            /* Turns off some styling */\n",
       "            progress {\n",
       "                /* gets rid of default border in Firefox and Opera. */\n",
       "                border: none;\n",
       "                /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
       "                background-size: auto;\n",
       "            }\n",
       "            .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
       "                background: #F44336;\n",
       "            }\n",
       "        </style>\n",
       "      <progress value='538' class='' max='564', style='width:300px; height:20px; vertical-align: middle;'></progress>\n",
       "      95.39% [538/564 02:39<00:07 0.8312]\n",
       "    </div>\n",
       "    "
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "IOPub message rate exceeded.\n",
      "The notebook server will temporarily stop sending output\n",
      "to the client in order to avoid crashing it.\n",
      "To change this limit, set the config variable\n",
      "`--NotebookApp.iopub_msg_rate_limit`.\n",
      "\n",
      "Current values:\n",
      "NotebookApp.iopub_msg_rate_limit=1000.0 (msgs/sec)\n",
      "NotebookApp.rate_limit_window=3.0 (secs)\n",
      "\n",
      "IOPub message rate exceeded.\n",
      "The notebook server will temporarily stop sending output\n",
      "to the client in order to avoid crashing it.\n",
      "To change this limit, set the config variable\n",
      "`--NotebookApp.iopub_msg_rate_limit`.\n",
      "\n",
      "Current values:\n",
      "NotebookApp.iopub_msg_rate_limit=1000.0 (msgs/sec)\n",
      "NotebookApp.rate_limit_window=3.0 (secs)\n",
      "\n",
      "IOPub message rate exceeded.\n",
      "The notebook server will temporarily stop sending output\n",
      "to the client in order to avoid crashing it.\n",
      "To change this limit, set the config variable\n",
      "`--NotebookApp.iopub_msg_rate_limit`.\n",
      "\n",
      "Current values:\n",
      "NotebookApp.iopub_msg_rate_limit=1000.0 (msgs/sec)\n",
      "NotebookApp.rate_limit_window=3.0 (secs)\n",
      "\n"
     ]
    }
   ],
   "source": [
    "learn = get_learn(model=model,size=size,bs=bs,mixup=mixup)\n",
    "learn.fit_fc(epochs, lr, moms,start_pct)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[tensor(0.9142), tensor(0.9837)]"
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "learn.recorder.metrics[-1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.9142275452613831"
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "learn.recorder.metrics[-1][0].item()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[tensor(0.8750), tensor(0.9781)]"
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "learn.recorder.metrics[79]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "learn.recorder.plot_losses()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x576 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "learn.recorder.plot_metrics()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "res = ''\n",
    "for num, i in enumerate(learn.recorder.metrics):\n",
    "    res += f\"{num}, {i[0].item()}, {i[1].item()} \\n\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "with open('log_s256_e200_3.txt','w') as f:\n",
    "        f.writelines(res)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "loss = ''\n",
    "for num, i in enumerate(learn.recorder.losses):\n",
    "    loss += f\"{num}, {i.item()} \\n\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "with open('log_loss_s256_e200_3.txt','w') as f:\n",
    "        f.writelines(loss)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "val_loss = ''\n",
    "for num, i in enumerate(learn.recorder.val_losses):\n",
    "    val_loss += f\"{num}, {i.item()}\\n\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "with open('log_val_loss_s256_e200_3.txt','w') as f:\n",
    "        f.writelines(val_loss)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# epochs 200 results"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "acc = np.array([0.9091371893882751, 0.9109188318252563, 0.9142275452613831])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(0.9114278554916382, 0.0021090692336389614)"
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "acc.mean(), acc.std()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
